こんにちは、FacebookとGoogleのログインでAndroidアプリを持っています。私はFirebase AuthとRealtimeデータベースを使用し、誰かがデータベースに存在するかどうかを確認します。ユーザーが初めて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()'に達しますか?もしそうなら、どの支店に入るのですか? –