名前がUsers
のノードを作成しました。私は自分自身を登録し、その子ノードに彼/彼女のすべてのプロフィール情報を保存するユーザのUid
という名前の子ノードを作成したいと思います。Firebaseデータベースにデータを追加できません
ユーザーがデータベースに正常に登録された場合にのみ発生します。だから私は次のコードを使用しました:
mAuth.createUserWithEmailAndPassword(user.getEmail(), password)
.addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Log.d("MainActivity", "signIn:onComplete:" + task.isSuccessful());
if (task.isSuccessful()) {
DatabaseReference userDatabaseReference = FirebaseDatabase.getInstance().getReference().child("Users");
userDatabaseReference.child(task.getResult().getUser().getUid())
.setValue(user).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Toast.makeText(ResetPassword.this, "user registred to database", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(ResetPassword.this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
});
} else {
Toast.makeText(ResetPassword.this, "Registration Failed",
Toast.LENGTH_SHORT).show();
}
}
});
私のコードは動作していません。ユーザーは正常に登録されましたが、データベースに子は作成されません。ユーザーのUidの名前で作成する必要があります。
ここに示されているように、私はブレークポイントを追加した場合:
を私はコンパイラがその間の任意の行を実行せずにライン後106ない82行目に直接進み、まだそれが呼び出されMainActivityを呼び出し見出さ内部が完了しました。
これはどういうことか分かりません。前もって感謝します。
これは、プッシュIDを持つ子をuidノード内に生成します。私はそれがOPが望んでいるとは思わない。 –
その後、.push()の代わりに.set()を使用してください。 –