当前位置: 首页 > 知识库问答 >
问题:

检查Firebase实时数据库中的许多子节点中的值

白学
2023-03-14

如果子“contacts”的值为“9aIMkiMa0bSuMLjUk3R5bLpnoQS2”,我想从子“Group”中检索文本“Private Group”。我还想检查父子“问题帖子”的其他子节点是否具有相同的值。我一直在努力,但没有成功。这是我一直在使用的代码,但它只产生了错误。

final DatabaseReference groupsRef = FirebaseDatabase.getInstance().getReference().child("questions posts");
    Query query = groupsRef.orderByChild("group").orderByChild("contacts");
    query.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot snapshot) {
            arrayList.clear();
          if (snapshot.exists() && snapshot.hasChild(onlineUserId)){
              arrayList.add(groupsRef.getKey().toString());
              arrayAdapter.notifyDataSetChanged();
          }
        }

        @Override
        public void onCancelled(@NonNull DatabaseError error) {

        }
    });

共有1个答案

澹台俊达
2023-03-14

Firebase查询在节点的平面列表上操作,并且只能包含一个未知键。

据我所知,您至少有两级未知键(-MH... Ez129alMk...... QS2),可能还有三个(Private Group)。没有办法使用数据库查询来查询此结构,您需要提出不同的数据结构来允许您的用例。

例如,如果希望允许查找给定联系人ID的帖子,请考虑准确存储该关系:

"contactsToPosts": {
  "$contactId": {
    "$postId": true
  }
}

有关这种排序数据建模权衡的更多信息,请参阅:

  • Firebase查询双嵌套
  • Firebase查询子节点是否包含值
 类似资料:
  • 我的Firebase数据库映像在Firebase的实时数据库中,我正在尝试访问父节点的名称,并给出了子节点的名称。但是,.parent似乎需要对子节点的引用,如果没有父节点的名称,我似乎无法获得子节点的引用。 这是我的数据的代码: 问题出在like函数中:如果我能找到一种方法来获取发tweet(参数t表示的tweet)的人的userId,那么第一个var y和所有这些都是不必要的。 如果我可以得到

  • 我想删除firebase实时数据库中某个子项的特定子项。 我已经添加了我的数据库的图片。 我想删除突出显示的子对象。

  • 我对Firebase和Android是新手。我已经在我的Firebase帐户中存储了用户身份验证详细信息(姓名、个人资料图像而不是电子邮件ID)。我想检索那些数据(如姓名等)到我的应用程序的其他部分。如何检索实时数据库子值?

  • 我有两个关于Firebase实时数据库的重要问题(对于带有java的android)。 遵守以下结构: 我有以下课程: 为了搜索用户的数据(姓名、年龄、地区和肤色),我做到了: 问题1:在进行搜索时,firebase是只下载用户数据(除了消息节点)还是也下载消息节点中的数据? 想象一下,消息节点中有数百万条消息,进行此搜索,是否也会下载数百万条消息?为什么消息节点在用户节点内? 我只想要数据名称、

  • 在实时数据库中未创建根节点。所有依赖项均已实施,firebase已连接到该项目。这是代码。 public void onComplete(@非空任务任务){

  • 每当我使用Admin SDK从Node运行Firebase实时数据库代码时,进程都会挂起。例如,我可能有一个节点应用程序: 我使用运行。用户将设置为不活动,这很好。但是节点进程将挂起。我必须按ctrl-c才能返回提示。 我应该使用Firebase在节点应用程序中关闭连接或执行其他操作吗?对于Firebase函数,我必须返回从上述调用生成的promise。那么,Firebase函数是否自动处理关闭我