Android 从Firebase检索信息
这是我在Firebase上的数据库: 我想在有人刚刚登录我的应用程序后获取用户名Android 从Firebase检索信息,android,firebase,firebase-realtime-database,firebase-authentication,Android,Firebase,Firebase Realtime Database,Firebase Authentication,这是我在Firebase上的数据库: 我想在有人刚刚登录我的应用程序后获取用户名 final FirebaseDatabase database = FirebaseDatabase.getInstance(); DatabaseReference ref = database.getReference("hellodoctor-65e79/message/user-doctor"); FirebaseUser user = FirebaseAuth.getInstance().getCur
final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference ref = database.getReference("hellodoctor-65e79/message/user-doctor");
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
ref = ref.child(user.getUid());
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
userDoctor[0] = dataSnapshot.getValue(UserDoctor.class);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
但是它不起作用,请帮帮我,提前谢谢你的帮助。这是我在ios中使用Xcode而不是android的方式,但希望你能看到发生了什么 这是如果您只想检索用户名。如果要检索所有用户的详细信息,我建议使用NSObject
func retrieveUsername() {
guard let uid = FIRAuth.auth()?.currentUser?.uid else {
return
}
let ref = FIRDatabase.database().reference().child(uid).child("name")
ref.observe(.value, with: { (snapshot) in
print("Username:", snapshot.value as! String)
}, withCancel: nil)
}
请显示错误和什么是userDoctor[0]从屏幕截图上看,它看起来像是
hellodoctor-65e79
是您的数据库名称,在这种情况下,您不应该在调用ref
时包含它。所以:DatabaseReference=database.getReference(“消息/用户医生”)代码>另外:不要忽略取消的onCancelled
,因为它可能包含有关应用程序无法工作的关键信息。相反:public void onCancelled(DatabaseError DatabaseError){throw DatabaseError.toException();}
非常感谢@FrankvanPuffelen!