gpt4 book ai didi

ios - FIrebase 3 查询以返回与子键/值匹配的值

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

我刚刚升级了我的 iOS 应用程序以使用 firebase 3,并且在 firebase 2 中工作的查询在 firebase 3 中不再工作。

旧的查询是这样写的。

fireBaseUser.queryOrderedByChild("displayName").queryEqualToValue(friendDisplayName)
.observeSingleEventOfType(.Value, withBlock: { snapshot in
}

其中 friendDisplayName 可能是“someguy1”,并且会返回 someguy1 所属的对象。

但是现在,相同的查询在 firebase 3 上没有返回任何内容。我觉得这是因为 firebase 3 没有查看子对象本身,它正在寻找 displayName 作为实际的子对象本身。例如,如果我将其更新为此查询,它会按预期返回。

    database.child("0hfTq3CTtFWNFvG0dmea1rAYpoW2").queryEqualToValue("someguy1", childKey: "displayName").observeSingleEventOfType(.Value, withBlock: { snapshot in
}

但显然这对我来说不是一个解决方案,因为我不想解析子节点然后搜索它们等等。我认为一个解决方案是如果 firebase 有一个'catch all' 在这里你可以指定一个 child 是这样的

database.child(*****).etc

其中****可以是任意值,实际查询时不需要指定。

有谁知道如何解决这个问题?我在下面附上了 Firebase JSON 布局。

谢谢!

 {
"users" : {
"0hfTq3CTtFWNFvG0dmea1rAYpoW2" : {
"displayName" : "someguy1",
"pushOptions" : 1,
"pushToggle" : false
},
"9BATNLBnnoXMOvK4lHtQfmNGJJy1" : {
"displayName" : "someguy2",
"pushOptions" : 0,
"pushToggle" : true
}
}
}

最佳答案

我实际上发现,尽管没有关于它的文档,但 displayName 充当关键字 - firebase 提供给您的用户对象现在提供了一个 displayName 属性,但与大多数其他数据库不同,您不能在任何其他节点或子节点 - 可以,但不可搜索。最后将 displayName 属性更改为 userName 解决了我所有的问题。

希望这对其他人有帮助。

关于ios - FIrebase 3 查询以返回与子键/值匹配的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37427191/

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