2017-03-23 365 views
-3

检索信息这里有我的火力地堡的数据库:从火力地堡

Here's my database on 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) { 

     } 
    }); 

但它不起作用,请帮助我,在此先感谢您的帮助。

+0

显示错误,请 ,什么是userDoctor [0] – Elsunhoty

+0

从它看起来像'hellodoctor-65e79'是你的数据库的名称的截屏,在这种情况下,你不应该包括在您调用' ref'。所以:'DatabaseReference ref = database.getReference(“message/user-doctor”);' –

+0

另外:不要忽略'onCancelled',因为它可能包含关于为什么你的应用程序不工作的重要信息。相反:'public void onCancelled(DatabaseError databaseError){throw databaseError.toException(); }' –

回答

0

这就是我如何使用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) 
}