例如,我现在的引用是
private FirebaseDatabase database;
private DatabaseReference reference;
database = FirebaseDatabase.getInstance();
reference = database.getReference("users");
我有一个 ChildEventListener 来监听子“subject”和“time”的修改、添加或删除,但它仅在“subject”和“time”是用户的直接子级时才有效,而不是在另一个 child 。
对于所有用户,我将如何修改我的数据库引用以查找“subject”和“time”,它们是 push key 下的子项,而 push key 是子“requests”下的?
最佳答案
试试这个:
FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser();
String useruid=user.getUid();
DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("user").child(useruid).child("requests");
ref.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
String subject=dataSnapshot.child("subject").getValue().toString();
String time=dataSnapshot.child("time").getValue().toString();
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
@Override
public void onCancelled(DatabaseError databaseError) {
}
};
这样您就可以访问/检索每个用户的主题和头衔。
关于java - Android Firebase - 如何将 DatabaseReference 设置为为所有用户生成的推送 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48857098/