2017-03-23 436 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) 
}