[英]Why Firebase database getUid doesn't work?
最初,我编写了一个代码来将值存储在 Firebase 实时数据库中。
mDbRef = mDatabase.getReference().child("Users");
mDbRef.child("name").setValue(rname);
mDbRef.child("email").setValue(remail);
子值存储在“用户”子项中的 Uid 下。
然后我将代码更改为
String name = userName.getText().toString();
mDbRef = mDatabase.getReference().child("Users").child(name);
mDbRef.child("name").setValue(rname);
mDbRef.child("email").setValue(remail);
现在,子值存储在其名称下的“用户”子项中。
现在我有两个问题,
public void checkUserExists () {
final String user_id = Objects.requireNonNull(uAuth.getCurrentUser()).getUid();
mDbRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.hasChild(user_id)) {
startActivity(new Intent (LoginActivity.this, HomeActivity.class));
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
当孩子在 Uid 下时,新的 Intent 活动运行良好。 当它更改为“名称”代替 Uid 时,意图活动不会启动。 但是如果我在关闭它后重新启动应用程序,它会直接进入家庭活动。 应该怎么做才能纠正这个问题?
我可以提出这样的建议吗:
String key = mDatabase.child("users").push().getKey();
// key is generated by Firebase and is unique
mDbRef = mDatabase.getReference().child("users").child(key);
mDbRef.child("name").setValue(rname);
mDbRef.child("email").setValue(remail);
并检查文档
很高兴能帮助你!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.