答案 0 :(得分:0)
这些密钥是由push()
方法创建的,您应该在使用getKey()
在调用d atasnapshot.getChildren()
之后,你应该创建一个字符串
String myParentKey = datasnapshot.getKey().toString();
为了获得所有孩子的父键,这当然是一个循环,这里有一个提示
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
String myParentKey = childSnapshot.getKey().toString();
...
希望它有所帮助!快乐的编码!
答案 1 :(得分:0)
你可以使用orderByChild和equalTo获取食物对象快照,之后获取foodSnapshot的关键
final Query userQuery = FirebaseDatabase.getInstance().getReference().child("Food").orderByChild("uid");
userQuery.equalTo("BNeBA...........").addListenerForSingleValueEvent(
new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot foodSnapshot: dataSnapshot.getChildren()) {
// result
String key = foodSnapshot.getKey();
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
}
);
参考:https://firebase.google.com/docs/database/android/lists-of-data
答案 2 :(得分:0)
这是适合我的代码。
DatabaseReference ref = FirebaseDatabase.getInstance().getReference("Users");
ref.child(uid).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String name = (String) dataSnapshot.child("u_username").getValue();
show_username.setText(name);
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});