[英]Firebase / Firestore - How to manually create indexes
我正在使用 react-native 开发一个移动应用程序。 我正在使用第三方模板开始工作。 此模板创建一个名为“users”的 Firestore 数据库集合。 这个模板还不断地给我关于“用户”集合上没有索引的错误:
[FirebaseError: The query requires an index. You can create it here: https://console.firebase.google.com/v1/r/project/social-marketplace-3c8df/firestore/indexes?create_composite=CmRwcm9qZWN0cy9zb2NpYWwtbWFya2V0cGxhY2UtM2M4ZGYvZGF0YWJhc2VzLyhkZWZhdWx0KS9jb2xsZWN0aW9uR3JvdXBzL1NvY2lhbE5ldHdvcmtfUG9zdHMvaW5kZXhlcy9fEAEaDAoIYXV0aG9ySUQQARoNCgljcmVhdGVkQXQQAhoMCghfX25hbWVfXxAC]
当我从错误消息中复制此“创建索引”链接并将其粘贴到浏览器中时,它会将我带到一个空的 Firebase 控制台页面。 因此没有创建索引。 当我尝试通过导航到 Firestore 页面上的“索引”选项卡、选择复合索引并输入“/users”作为我的集合名称来手动创建此类索引时,我被告知“/users”是保留的,所以我我无法创建这样的索引。 有没有办法在我的“/users”集合上创建这样的索引?
正如@Renaud Tarnec 的评论,它通过使用Firebase 控制台修复:
可以创建一个文件firestore.indexes.json
来创建你的索引:
{
"indexes": [
{
"collectionGroup": "collection_name",
"queryScope": "COLLECTION",
"fields": [
{
"fieldPath": "your_field_name",
"order": "ASCENDING"
},
{
"fieldPath": "your_field_name",
"order": "DESCENDING"
}
]
},
]
}
记住:CollectionGroup = 集合名称
queryScope = 类型(集合 | 文档)
fields = orderBy 的字段
singleField = orderBy 的唯一字段
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.