如何使用 Swift 在 Firebase 中使用 equalTo 查询查找子节点? [复制]

Posted

技术标签:

【中文标题】如何使用 Swift 在 Firebase 中使用 equalTo 查询查找子节点? [复制]【英文标题】:How to find child node with equalTo query in Firebase with Swift? [duplicate] 【发布时间】:2017-03-07 08:53:10 【问题描述】:

我有以下 Firebase 层次结构。

我如何编写一个查询来查找值为1 的子节点并且我不知道它在节点V9T3cEgEGPRmIkMQb32hxa5gG7L2 下?在这种情况下,我想查找并打印出-KeYbk3K1xXlyzOGVVPx(此 uid 密钥由 Firebase 生成)。主节点为eventUser

【问题讨论】:

如果您指定特定的 eventUser 节点,您只能获取值为 1 的 eventOrganized。或者,您可以获取 eventOrganized 值为 1 的所有 eventUser。你想要的是不可能的。如果您希望整个数据库中所有 eventOrganized 的值为 1,则必须在代码中手动循环遍历它。 顺便说一下,这是***.com/questions/42609735/…的转贴 (1) 不是完全相同的问题,因为在这里我试图提出一个关于 Firebase 查询的一般性问题,而前一个问题过于具体且与您提到的代码 (2) 混淆了“你可以获取所有 eventOrganized 值为 1 的 eventUsers”它看起来如何?与prevoius线程的答案我没有得到那些记录 我要说的是,您可以获取具有特定 eventOrganized 值为 1 的所有 eventUsers。但是我已经给了你那个查询,你说它不起作用(即使它应该起作用)。我认为你最好找到一种方法来重组你的数据库。 这看起来与我在分类答案中描述的相似:***.com/questions/40656589/…。正如 Pieter 所说,这需要不同的数据模型才能有效地完成。 【参考方案1】:

传递nodeVal中的节点值

var userId = firebase.auth().currentUser.uid;
return firebase.database().ref('/eventUser/' + nodeVal).once('value').then(function(q) 
   var eventItem = q.val().eventitem;
   console.log(eventitem);  
);

【讨论】:

这是一个 Swift 问题,你为什么要用 javascript 来回答?

以上是关于如何使用 Swift 在 Firebase 中使用 equalTo 查询查找子节点? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 swift 和 firebase 正确使用完成处理程序?

如何使用 swift 读取 Firebase 数据库中的值,然后在地图上进行注释?

如何在 UILabel 中显示名字?我正在使用 Firebase 和 Swift 开发 IOS 应用程序

如何使用 Swift 在 Firebase 中创建具有多个属性的用户?

如何使用 Swift 在 Firebase 中使用相同的关键字存储不同数据的多个实例?

如何使用 Swift 使用 Firebase 正确观察两个连接节点