- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Firebase 中搜索用户名(或任何与此相关的搜索)时有什么区别.queryOrdered().queryEqual(toValue:
和 child().observeSingleEvent(
我看了下面@Frank van Puffelen 的回答和评论
在these comments他说要使用:
reference.child("usernames").child(usernameYourSearchingFor).observeSingleEvent(of: .value, with: { (snapshot) in
if snapshot.exists() { ... } else { ... }
})
但是在this answer他回答说:
ref.child("users").queryOrdered(byChild:"username").queryEqual(toValue: usernameYourSearchingFor).observeSingleEvent(of: .value, with: { snapshot in
if snapshot.exists() { ... } else { ... }
})
使用这两种方法搜索数据库时,速度和效率之间是否存在差异,或者仅仅是使用 2 种不同的方法来实现相同的确切目标?
最佳答案
基本上,这些操作适用于两种不同的数据结构。
在第一个中,您将拥有与此类似的数据结构:
{
"usernames": {
"usernameYourSearchingFor": {
// some data
},
"otherUsername": {
// different data
}
}
}
如您所见,您要搜索的用户名是“用户名”节点下的一个键。您可以通过调用 child()
直接访问它功能。 (然后附加一个事件观察器)
现在在第二个结构中:
{
"users": {
"user1": {
"username": "usernameYourSearchingFor",
"email": "user1@email.com"
},
"user2": {
"username": "otherUsername",
"email": "user2@email.com"
}
}
}
用户名其实是属于User对象的一个属性。您无法直接访问它,因此您需要 query “用户”节点,以便找到您要搜索的用户名,因此需要 .queryOrdered(byChild:"username").queryEqual(toValue: usernameYourSearchingFor)
。
关于ios - Firebase iOS -.queryOrdered().queryEqual(toValue : and child(). observeSingleEvent 之间有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51469816/
我有一个营业地点的注册页面,我正在比较纬度和经度是否与数据库中任何现有的 child 相匹配。此代码有时工作然后停止工作。当它停止工作时,我会按下“创建帐户操作”,但什么也不会发生。我添加了一个 pr
我现在正在尝试根据时间戳对通知页面上的数据从新到旧进行排序 - 当我运行它时,有时它的顺序是正确的,但有时它是随机且不正确的。如果我可以添加任何内容以确保它始终顺利运行,请告诉我,提前谢谢您:) 我的
我正在尝试获取仅由 adminUserUID 保存的媒体。问题是返回的数据不是 adminUserUID 发布的数据。 我在我的代码中没有看到任何错误,但我不明白为什么我得到了错误的数据。 我的数据结
"users":{ "steve_rodriquez":{ "ch1":{ "timestamp":2 }, "ch2
我需要按日期 (unix) 排列我的 firebase 数据。我认为 queryOrdered(byChild: "date") 可以解决问题。完成了 search并找到this这是有道理的: But
我想从我的 firebase 表中选择一个特定的名称(看图片)。打印的结果总是空的。所选名称应为“manni”。我的代码有什么问题?非常感谢。 @IBAction func BTSelect(_
在 Firebase 中搜索用户名(或任何与此相关的搜索)时有什么区别.queryOrdered().queryEqual(toValue: 和 child().observeSingleEvent(
使用 UISearchController 如果我想搜索用户最喜欢的书,书名是《哈利·波特》,我会执行以下操作来获取它的快照: func updateSearchResults(for searchC
root | @--reviews | | @--postABC // postId |
当运行下面的代码时,我得到一个空的响应,即使相应的数据在那里: self.ref?.child("play-data/calories/GC5g4RUmy0WTTL5w3jSobefa9Ft2").
我是一名优秀的程序员,十分优秀!