gpt4 book ai didi

java - 在更深的嵌套项目上使用 indexOn 的问题

转载 作者:行者123 更新时间:2023-11-29 18:28:12 29 4
gpt4 key购买 nike

enter image description here我在 stackoverflow 上搜索了很多并阅读了很多问题我有 3 个 indexOn 问题,其中 2 个已解决,1 个仍然存在我正在对数据库进行排序,并在成功运行的“Collection 夹”和“诗人”上设置了 indexOn,但我还需要一个用于心脏节点内数字的 indexOn。查询运行成功,但我在 android studio 中收到 indexOn 警告

我尝试在数据库规则中使用变量代替数字,但仍然收到警告

Using an unspecified index. Your data will be downloaded and filtered on the client. Consider adding '".indexOn": "heart/+91916*******"' at gazal to your security and Firebase Database rules for better performance

queryFav = FirebaseDatabase.getInstance()
.getReference(reference).orderByChild(child).equalTo("heart");

上面的查询运行成功但是indexOn规则应该是什么

最佳答案

您收到的消息意味着您正在运行一个查询,该查询在名为 gazal 的节点上具有 orderBy("heart/+91916*******") .要高效地运行该查询,您需要在 heart/+91916******* 上为您的安全规则中的该节点创建一个索引。但是由于该索引的 +91916***** 部分可能是动态的(即您将有不同的值 +91916******* 应用程序的每个用户),您必须为每个用户添加一个索引。那是不可行的。

换句话说:您当前的数据结构使阅读喜欢特定诗歌的用户变得容易。然而,确定特定用户喜欢的诗歌并不容易。为了使这同样容易,您需要添加一个额外的数据结构”

"user_hearts": {
"+91916*******": {
"-KjYiXzl1ancR8Pi3MfQ": true
}
}

通过上述结构,您可以轻松地为您感兴趣的用户读取user_hearts节点,然后在需要时一首一首地读取诗歌。

另见:

关于java - 在更深的嵌套项目上使用 indexOn 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57757754/

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