gpt4 book ai didi

android - 通过向查询添加监听器返回的 DataSnapshot 是否不同于直接添加到 DatabaseReference 的 DataSnapshot

转载 作者:行者123 更新时间:2023-11-30 00:19:27 24 4
gpt4 key购买 nike

这是一个广泛的问题,涉及在 Firebase 数据上运行查询与不使用查询类访问数据之间的区别。

下面是一个查询的结构,取自文档并进行了一些缩减:

DatabaseReference myRef = database.getReference("Users");

Query exampleQuery = myRef.orderByChild("age");

exampleQuery.addChildEventListener(new ChildEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {

// Do something...

}
}
});

看着它并读到它必须在 DataSnapshot 上递增,这让我想知道它是否与下面示例中返回的 DataSnapshot 不同,如果没有,将查询类仅视为无非是正确的吗在使用数据之前向数据添加排序和过滤的中介,因此可以在不使用查询类时添加 for 循环,如下例所示?

DatabaseReference myRef = database.getReference("Users");

myRef.addChildEventListener(new ChildEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {

// Do something...

}
}
});

我意识到这个问题可能看起来微不足道,但我还没有遇到在查询类不存在时使用 for 循环的示例,因此我想确认这两者没有联系在一起。

最佳答案

看看这个Documentation .你会发现

public class DatabaseReference extends Query  

这意味着 Query 类的每个方法也都继承给 DatabaseReference 类。

Does the DataSnapshot returned by adding a listener to a query differ to that of one added directly to a DatabaseReference?

不,除非引用没有不同,否则它们是相同的。

Where to use Query then?

我相信 Query 类通常用于过滤结果,如果您有多个查询要做。
参见 this也。 FirebaseRecyclerAdapter 需要并且只接受 Query 类的实例,而不是 DatabaseReference

关于android - 通过向查询添加监听器返回的 DataSnapshot 是否不同于直接添加到 DatabaseReference 的 DataSnapshot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46573512/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com