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

节点上的Firebase实时数据库搜索是否也从子节点下载数据?

缪晋
2023-03-14

我有两个关于Firebase实时数据库的重要问题(对于带有java的android)。

遵守以下结构:

我有以下课程:

public class User {
    String name;
    String age;
    String region;
    String color;
}

为了搜索用户的数据(姓名、年龄、地区和肤色),我做到了:

DatabaseReference usersRef = ConfigF.getFirebase().child("users").child("user1");
        usersRef.addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                User user = dataSnapshot.getValue(User.class);
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
            }
        });

问题1:在进行搜索时,firebase是只下载用户数据(除了消息节点)还是也下载消息节点中的数据?

想象一下,消息节点中有数百万条消息,进行此搜索,是否也会下载数百万条消息?为什么消息节点在用户节点内?

我只想要数据名称、年龄、地区和颜色,也就是类中的所有属性,我可以这样做吗?

问题 2:如果我从 User 类中删除“color”属性,则在执行上述相同搜索时,是否会下载数据库中“color”中的值?或者只是类中的数据(名称,年龄和地区)?

共有1个答案

古凌
2023-03-14

Firebase实时数据库查询很深,这意味着对任何节点的请求都将下载该节点下的所有子节点。没有办法排除某个子节点。出于这个原因,有时将相关数据拆分到不同的父节点是有意义的,仅根据需要请求。

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

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

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

  • 如何从控制台从FireBase中删除节点?由于它太大,显然我无法从控制台中删除它。通常我可以按节点名称附近的删除按钮,但它显示控制台仅出于性能原因而读取。

  • 由按键生成的firebase子节点 使用Javascript,如何在firebase实时数据库上删除由push key生成的子节点 上面的代码用于向实时数据库添加数据

  • 查看其他关于堆栈溢出的问题,有人说这可能是因为valueEventListener的位置不正确,但...不是吗?我正在钻进食物条目/营养条目,但我不知道如何钻进更深。没办法匿名给孩子打电话?我尝试调用childEventListener而不是valueEventListener,其他的都一样,但我再也没有得到那个消息,但我仍然无法检索到我想要的数据。 编辑: 谢谢你到目前为止的帮助。根据下面Has