Android Firebase - 如何将DatabaseReference设置为所有用户生成的推送密钥?

时间:2018-02-18 22:04:49

标签: android firebase firebase-realtime-database

Firebase database structure here

例如,我现在的参考是

private FirebaseDatabase database;
private DatabaseReference reference;

database = FirebaseDatabase.getInstance();
reference = database.getReference("users");

我有一个ChildEventListener来监听孩子的修改,添加或删除" subject"和"时间",但只有在"主题"和"时间"是用户的直接子女,而不是另一个孩子。

对于所有用户,我如何修改我的数据库引用以查找" subject"和"时间"这是按下按键的孩子,推按键在孩子的下面"要求"?

1 个答案:

答案 0 :(得分:1)

试试这个:

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) {

    }

  };

这样您就可以访问/检索每个用户的主题和标题。