【问题标题】:How do I get immediate parent keys in firebase如何在 Firebase 中获取直接父键
【发布时间】:2020-08-09 00:15:12
【问题描述】:

所以我正在尝试获取直接父键,它们实际上是“用户”数据库下的子键。

像这样,下划线的 -

我的代码如下-

    databaseReference.addChildEventListener(new ChildEventListener() {
        @Override
        public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
            for( DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
                String  user = postSnapshot.getKey();
                list.add(user);

            }

        }

但它所做的只是返回下面的图像 -

【问题讨论】:

  • 请登录用户。
  • 相反,登录用户不必显示在列表中。必须显示其他用户。在这里找到了一些东西,但正则表达式返回了奇怪的数据stackoverflow.com/questions/46949464/…

标签: java android database firebase-realtime-database arraylist


【解决方案1】:

首先你的数据库引用必须是这样的:

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference().child("users");

这是您读取数据的方式:

ValueEventListener listener = new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {

    for(DataSnapshot ds: dataSnapshot.getChildren()){
      String  user = ds.getKey();
      list.add(user);

    }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        //log error
        Log.w(TAG, "loadPost:onCancelled", databaseError.toException());

    }
};
databaseReference.addValueEventListener(listener);

【讨论】:

  • 您刚刚编写了与我相同的代码,它返回用户名和密码,就像问题中发布的第二张图片一样
  • 这是一个 ValueEvent 侦听器,而不是子侦听器。
  • 和数据库参考?
  • 对不起,我错过了最后一行...它有效..谢谢您..已接受您的回答..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-09
  • 1970-01-01
  • 1970-01-01
  • 2013-05-31
相关资源
最近更新 更多