0

我正在嘗試創建Firebase登錄和註冊應用程序。我已經設置,在註冊時,android id將保存到數據庫。如果Android ID與另一個帳戶退出,用戶將無法創建帳戶。當我運行該應用程序並嘗試註冊一個帳戶時,顯示「正在註冊,請稍候...」,然後發生無關事件。我怎樣才能解決這個問題?Firebase數據庫查詢不起作用

+0

你經常檢查裏面DatabaseError? – Sree

+0

不是,我的代碼可以嗎? – Fodis

+0

你在UserIdQuery中獲得什麼? – Sree

回答

0

爲了解決這個問題,關於驗證所有的問題是使用Firebase Authentication建議你。

這很容易實現,你將來沒有任何代碼需要維護。

要找到Android設備的序列號,請使用此代碼:

TelephonyManager tManager = (TelephonyManager)myActivity.getSystemService(Context.TELEPHONY_SERVICE); 
String androidSerialNumber = tManager.getDeviceId(); 

有了這個androidSerialNumber,你可以用它來保存在數據庫中。

0down voteaccepted

另一種方法會改變這樣的數據庫的規則:

{ "rules": 
    { ".read": "true", 
     ".write": "auth != null" 
    } 
} 
+0

我不明白。你能否寫下 – Fodis

+0

只需按照官方文檔的步驟進行操作(如上所述)即可解決問題。 –

+0

沒有我想要的方法。我已經使用電子郵件並傳遞方法。看到我的代碼兄弟。 – Fodis

0

將代碼更改爲此。

if(task.isSuccessful()){ 
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); 
rootRef.child(firebaseAuth.getCurrentUser().getUid()).child("Id").setValue(android_id); 
progressDialog.dismiss(); 
startActivity(new Intent(getApplicationContext(), ProfileActivity.class)); 
finish(); 
} 

,並駁回progressDialog當查詢被取消

@Override 
     public void onCancelled(DatabaseError databaseError) { 
     progressDialog.dismiss(); 
     } 
    }); 
+0

它將完成活動並打開ProfileActivity – Fodis

+0

@waqab。這現在正在工作 – Fodis