Hallo, habe eine Android App mit Facebook und Google Login. Ich benutze Firebase Auth und Realtime Datenbank und möchte prüfen, ob jemand in der Datenbank existiert. Wenn sich der User erstmalig bei Facebook oder Google anmeldet möchte ich einen neuen User in der Datenbank mit einem Nicknamen anlegen.Wie kann ich einen Firebase-Benutzer speichern, wenn er sich das erste Mal mit Facebook oder Google anmelden?
Hier ist mein Code:
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();
}
});
Aber der Benutzer nicht in der Datenbank speichern. Was kann ich tun?
Sie müssen Spitzname für den ersten Benutzer in Firebase erstellen? –
Stack Overflow ist als Remote-Debugger notorisch ineffizient. Um Hilfe zu bekommen, müssen Sie selbst mehr arbeiten und uns sagen, was vor sich geht. Hast du den Code in einem Debugger durchgegangen? Erreicht es 'onDataChange()'? Wenn ja, in welche Branchen geht es? –