【问题标题】:Retrieve information from Firebase从 Firebase 检索信息
【发布时间】:2017-08-15 21:20:22
【问题描述】:

这是我在 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) {

        }
    });

但它不起作用,请帮助我,提前感谢您的帮助。

【问题讨论】:

  • 请显示错误以及什么是 userDoctor[0]
  • 从屏幕截图看来,hellodoctor-65e79 是您的数据库的名称,在这种情况下,您不应将其包含在对 ref 的调用中。所以:DatabaseReference ref = database.getReference("message/user-doctor");
  • 另外:不要忽略onCancelled,因为它可能包含有关您的应用为何无法运行的重要信息。而是:public void onCancelled(DatabaseError databaseError) { throw databaseError.toException(); }
  • 非常感谢@FrankvanPuffelen!

标签: android firebase firebase-realtime-database firebase-authentication


【解决方案1】:

这就是我在 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)
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-09
    • 2023-03-27
    • 2018-03-11
    • 2016-09-03
    • 1970-01-01
    相关资源
    最近更新 更多