gpt4 book ai didi

ios - Swift -Firebase 如何知道 .childAdded 是否为空?

转载 作者:行者123 更新时间:2023-11-29 05:17:07 24 4
gpt4 key购买 nike

我知道当使用.value时,我可以使用.exists()检查是否有任何内容

在这种情况下,我在 SearchController 中运行查询,并且需要返回多个结果。当有结果时,一切都正常,但如果没有,我无从得知。

如何检查 .childAdded 是否不返回任何内容?

// if the user types in McDonalds and there are some then multiple will appear but if none then show a label that says “no results”

let searchText = searchController.searcchBar.text?.loweredCase() else { return }

Database.reference.child("restaurants")
.queryOrdered(byChild:"restaurantName")
.queryStarting(atValue: searchText)
.queryEnding(atValue: searchText + “\u{f8ff}”)
.observe( .childAdded, with: { (snapshot) in

// no McDonalds appear so show a no results label
})

最佳答案

由于 .childAdded 仅针对与查询匹配的现有子节点触发,因此您无法使用它来检测何时没有匹配项。要检测是否没有匹配项,您需要使用 .value 监听器并检查 snapshot.exists

除了现有的 .childAdded 监听器之外,您还可以使用它(Firebase 客户端会在后台删除重复的请求,因此不会传输额外的数据,< em>或者您也可以使用.value监听器来处理结果。在后一种情况下,您将需要loop over snapshot.children来获取各个结果节点。

关于ios - Swift -Firebase 如何知道 .childAdded 是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59078008/

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