Firebase在Android中使用子数据检索父数据
如何使用其子用户ID获取父用户?因为我只在用户登录时获取用户ID。我想用他们的用户ID列出他们所有的食物Firebase在Android中使用子数据检索父数据,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,如何使用其子用户ID获取父用户?因为我只在用户登录时获取用户ID。我想用他们的用户ID列出他们所有的食物 这些键是通过push()方法创建的,您应该在使用getKey()获取datasnapshot后获取这些键。 在调用datasnapshot.getChildren()之后,应该生成一个字符串 String myParentKey = datasnapshot.getKey().toString(); 为了获得所有孩子的父密钥,这当然是在一个循环中,这里有一个提示 public void
这些键是通过
push()
方法创建的,您应该在使用getKey()获取datasnapshot后获取这些键。
在调用datasnapshot.getChildren()
之后,应该生成一个字符串
String myParentKey = datasnapshot.getKey().toString();
为了获得所有孩子的父密钥,这当然是在一个循环中,这里有一个提示
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot childSnapshot: dataSnapshot.getChildren()) {
String myParentKey = childSnapshot.getKey().toString();
希望有帮助
快乐编码 您可以使用orderByChild和equalTo获取食物对象快照,然后获取食物快照的键
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) {
}
}
);
参考:这是适合我的代码
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) {
}
});
试试看。对不起,我是firebase的初学者。。这是否意味着在我插入新食物后,我需要立即获得钥匙?如果一个用户插入了许多食物?当for循环语句执行时,您将获得由新值生成的所有新键,您只需要声明一次getkey