0
嗨有一個Android應用程序與Facebook和谷歌登錄。我使用Firebase身份驗證和實時數據庫,並希望檢查數據庫中是否存在某人。如果用戶第一次登錄Facebook或Google,我想用暱稱在數據庫中創建一個新用戶。如果他第一次使用Facebook或Google登錄進行登錄,我可以如何保存Firebase用戶?
這裏是我的代碼:
public void saveUserToDatabase(User newuser){
DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference("users");
mDatabase.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String userId = mAuth.getCurrentUser().getUid(); //Holt sich die ID von Firebase
/*
* Es wird geprüft ob das Element schon in der Database existiert
* */
if(dataSnapshot.hasChild(userId)){
Log.d(DATABSE_FIREBASE,"Benutzer ist bereits in der Datenbank angelegt!");
}else{
Log.d(DATABSE_FIREBASE,"Benutzer ist noch nicht in der Datenbank angelegt!");
// hier muss der nickname übergeben werden
mDatabase.child(userId).setValue(newuser);
Log.d(DATABSE_FIREBASE,"Ein neuer Benutzer mit der Email: " + newuser.getEmail() + " wurde in der Datenbank angelegt");
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.d(DATABSE_FIREBASE,"Fehler beim Zugriff auf die Datenbank...");
finish();
}
});
但用戶不會在數據庫中保存。我能做什麼?
您需要爲Firebase中的第一次用戶創建暱稱? –
堆棧溢出作爲遠程調試器而臭名昭着,效率低下。所以爲了獲得幫助,你必須自己做更多的工作,並告訴我們發生了什麼。你是否在調試器中遍歷代碼?它是否達到'onDataChange()'?如果是這樣,它會進入哪些分支? –