Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从Firebase检索信息_Android_Firebase_Firebase Realtime Database_Firebase Authentication - Fatal编程技术网

Android 从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

这是我在Firebase上的数据库:

我想在有人刚刚登录我的应用程序后获取用户名

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!