gpt4 book ai didi

ios - 具有 queryEqual 值的 observeSingleEvent 不起作用

转载 作者:搜寻专家 更新时间:2023-11-01 07:03:28 25 4
gpt4 key购买 nike

因此,我想检查用户的设备是否在我的列表中(用于测试)。为此,我的 Firebase 数据集中有一小组值。

看起来是这样的: Firebase

但是当我试图检查用户的 ID 是否在此列表中时,我什么也没得到。

let childString = "tempfreeuuid/"
let pointref = ref.child(childString)
let query = pointref.queryOrderedByKey().queryEqual(toValue: "FFFFF")

query.observeSingleEvent(of: DataEventType.value) { (snapshot) in
if snapshot.hasChildren() {
print("that's good")
} else {
print("snapshot has no children")
}
}

结果是“快照没有 child ”。

我已经尝试过 query.observeSingleEvent(of: .childAdded)(不起作用)、.queryLimited(toFirst: 3) .queryOrderedByKey() — 这两个也不起作用。

与此同时,如果我不尝试使用 queryEqual,则此查询有效。

我做错了什么?

更新:我想澄清我遇到的问题。我没有任何结果,快照为空。同时,如果我使用 queryLimited(toFirst: 1) 而不是 queryEqual,我将从表中得到一个结果来处理。在我看来,这与快照问题无关,而是与没有任何结果的查询有关。

最佳答案

您使用了错误的 OrderedBy 方法。因为您使用的是 queryOrderedByKey,所以 queryEqual 函数将在您要将它与值进行比较时检查它是否等于键。

相反,您应该使用 queryOrderedByChildqueryOrderedByValue 来确保比较正确的值。

Here is the reference to the firebase docs解释查询(特别是 queryEqualToValue 在你的情况下)是如何工作的。

关于ios - 具有 queryEqual 值的 observeSingleEvent 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49690284/

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