だから私は、サインアップ手順中にユーザー名が存在するかどうかをチェックしています。唯一の問題は私のchildupdates2がユーザ名フォルダに追加されていないということですか?最初childUpdateが正しく追加されるが、第2 childUpdate2はありません。それはちょうど私のユーザー名フォルダを更新しません?updateChildrenは子を更新していませんか?
final DatabaseReference Userref = FirebaseDatabase.getInstance().getReference();
username_check_query = Userref.child("Usernames").orderByChild("username").equalTo(mUsernameView.getText().toString());
usernameChildEvent = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.getValue() == null){
ScoreClass scoreClass = new ScoreClass(10000, mUsernameView.getText().toString());
Map<String, Object> scoredata = scoreClass.toMap();
Map<String, Object> childUpdates = new HashMap<>();
childUpdates.put("Users/" + user.getUid(), scoredata);
Userref.updateChildren(childUpdates);
Username username = new Username(mUsernameView.getText().toString());
Map<String, Object> userdata = username.toMap();
Map<String, Object> childUpdates2 = new HashMap<>();
childUpdates2.put("/Usernames/" + user.getUid(), userdata);
Userref.updateChildren(childUpdates2);
}
else {
// other code
}
username_check_query.removeEventListener(this);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
username_check_query.addListenerForSingleValueEvent(usernameChildEvent);
ここにデータベース構造があります。
私が間違って何をしているのですか?
あなたがfirebaseの実際のデータベース構造は、ここで見ることができます:
も
username.toMap()
が非空のマップを作成することを確認してください? –@ VishalPatoliya構造を追加しました。 – LazyDev
なぜモデルクラスを使用していないのですか? –