- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我几乎阅读了所有 StackOverflow 答案,但没有一个适合我的场景,因为这是一个常见问题。在 Firebase 中查询数据时,我的 Xcode 控制台给出了非常常见的警告。该警告是使用未指定的索引。您的数据将在客户端下载并过滤。考虑将/users 处的 ".indexOn": "username"添加到安全规则中以获得更好的性能
我尝试的是首先阅读 Firebase 文档,准确了解我在做什么以及所述的其他答案,例如 Why does this Firebase ".indexOn" not work? 。下面,我提供了我的安全规则,完全按照消息提示进行操作;在/users 添加 indexOn 但没有成功。我还提供了我的数据库用户节点和下面的一个函数。
{
"rules": {
".read": true,
".write": true,
"users":{
".indexOn": "username"
}
}
}
我的 Firebase 数据库位于/users,采用 JSON 格式
"users":{
"5LYUynelLTcL8Bg9WNWGXV34YIq2" {
"email": "user1@gmail.com"
"username": "user1"
}
"9srk307kzxOW7j6dNmMaac9eYPu2" {
"email": "user2@gmail.com"
"username": "user2"
}
我在 Swift 中使用的函数
let ref = Database.database().reference().child("users").queryOrdered(byChild: "username").queryEqual(toValue: passedInFriendString)
ref.observeSingleEvent(of: .value) { (snapshot) in
print(snapshot)
}
我不知道还能去哪里。如果能了解这是否是查询我想要的内容的正确格式,那就太棒了!
最佳答案
我解决了!
我没有意识到的是,我的问题中的上述代码在/users 上添加适当的索引定义后确实成功打印了快照。我的问题是意识到如果您想进一步访问我相应查询的用户名快照的数据,您需要循环遍历快照。看起来像这样
let ref = Database.database().reference().child("users").queryOrdered(byChild: "username").queryEqual(toValue: passedInFriendString)
ref.observeSingleEvent(of: .value) { (snapshot) in
for child in snapshot.children {
guard let snap = child as? DataSnapshot else {return}
if snap.hasChild("email") {
print("It has an email")
}
}
}
感谢上面的 Frank 指导我并确认我走在正确的道路上。每当我需要获取数据时,我很高兴能够学到一些新的并且非常高效的东西。
关于swift - Firebase 规则中有关 indexOn 的恼人问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55957680/
我收到 Firebase 警告“使用未指定的索引。请考虑在/user/544dceb6-98d-4f7e/clients 添加 ".indexOn": "E-mail"。 我添加的规则是: { "
我的数据设置如下: Tasks:{ Group 1:{ pushid1:{ date: 18921949021, title: "Do something"
您在下面看到的当前查询效率不高,因为我没有设置正确的索引。我在 Xcode 的控制台中收到建议 Consider adding ".indexOn": "users/kxSWLGDxpYgNQNFd3
您在下面看到的当前查询效率不高,因为我没有设置正确的索引。我在 Xcode 的控制台中收到建议 Consider adding ".indexOn": "users/kxSWLGDxpYgNQNFd3
我有一个大约有 7 - 8k 用户的数据库,每次我执行 getChildrenCount() 来计算我的应用程序中有多少人时,我真的需要等待很长时间才能处理并到来上。 我想知道是否有一种方法可以在我的
我尝试使用 Firebase (2.2.5) API/.orderByChild('score') 操作,并且我不断得到 No index defined for score 尽管 Firebase
所以我有这样的数据: pushNotifications { -K - RwEgd541PIGNOXXUH: { message: "Xiaoyu Hugh Hou bid a
我有一个从 Firebase 实时数据库检索的 content 节点。我利用 .orderByChild("time") 获取按最早时间戳排序的前 5 个博客对象的数据快照。我 我目前正在尝试使用 .
我对 firebase 的索引有一些疑问。这是我的 Firebase 结构: merchants { merchantID1 : { merchantName :
我正在使用以下查询创建条目 var newMessageRef = friendlyChat.database.ref().child('dinos').push() newMessageRef.se
Firebase 结构: { "config" : [ { "config1" : { "hideimage" : true } },
我在 stackoverflow 上搜索了很多并阅读了很多问题我有 3 个 indexOn 问题,其中 2 个已解决,1 个仍然存在我正在对数据库进行排序,并在成功运行的“Collection 夹”和
我在 swift 中使用 firebase 从 firebase 实时数据库中读取一些数据。当我在 firebase 面板中有一个项目时它工作正常,但今天添加另一个项目后我得到了这样的错误 2017-
我想弄清楚如何从 iOS 应用程序使用 Geofire。但是我在规则定义方面失败了。 这就是我的数据集的样子: offers:{ user1:{ name : "Steph",
我正在尝试使用 firebase 查询获取情绪等于 M1 的所有帖子,如下所示: db.ref(`Recommendations`).orderByChild(`post/vote/moodTags/
我有一个名为 search2 的集合,其中包含大约 20000 个这样的文档: { "loc": { "type": "Polygon", "c
我有一个带有索引的集合: { "UserId" : 1, "ShareId" : 1, "ParentId" : 1, "DeletedDate" : 1 } 如果我进
我在 xcode 中遇到这个错误: 使用未指定的索引。考虑将/groups 处的 ".indexOn": "members/rsenov"添加到您的安全规则中以获得更好的性能 这是我的 JSON 数据
我已经开始测试 Firebase,但我无法弄清楚关于索引的一件事。我正在根据阅读的内容创建一个结构 - Firebase Data Structuring - 类似于用户和组的示例。 JSON 树看起
我有一堆要使用 .indexOn 建立索引的键 假设我的数据如下所示。我希望能够使用 .orderByChild("height") . { "lambeosaurus": { "stat
我是一名优秀的程序员,十分优秀!