我正在使用Android应用。
我创建了一个FireBase数据库,其中包含注册用户的信息。
正如您在图片中看到的,我为我的数据库中的用户创建了服装密钥,这些用户是身份验证部分中的用户User UID
。当用户登录时,我得到User UID
并在我的FireBase
数据库中直接从根节点到该特定节点找到它的信息,该节点总是给我空值。
请帮助我。
如果您可以上传代码段,那将非常感激。
。
答案 0 :(得分:1)
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("teacher");
ref.orderByKey().equalto(currentuser.getUid()).addChildEventListener(new ChildEventListener() {
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
String value=dataSnapshot.child("teacherName").getValue().toString();
}
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
public void onCancelled(FirebaseError firebaseError) { }
});
引用您要查询的位置,然后执行addChildEventListener
并在条件等于您获得的用户ID时进行查询。
FirebaseUser currentuser = FirebaseAuth.getInstance().getCurrentUser();
答案 1 :(得分:1)
要获取数据,请使用以下代码:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef = rootRef.child("teacher").child(uid);
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String ImageUri = dataSnapshot.child("ImageUri").getValue(String.class);
String teacherName = dataSnapshot.child("teacherName").getValue(String.class);
String teacher_key = dataSnapshot.child("teacher_key").getValue(String.class);
Log.d("TAG", ImageUri + "/" + teacherName + "/" + teacher_key);
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
uidRef.addListenerForSingleValueEvent(eventListener);
其中uid
是您说您已经拥有的用户的ID。