Firebase 如何在Cloud Firestore中创建子集合索引?
我在Google上搜索并查看了CloudFireStore文档,没有发现任何关于如何声明子集合索引的内容。我已经宣布了类似的事情Firebase 如何在Cloud Firestore中创建子集合索引?,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,我在Google上搜索并查看了CloudFireStore文档,没有发现任何关于如何声明子集合索引的内容。我已经宣布了类似的事情 ...{ "collectionId": "user/{uid}/feeds", "fields": [..] }... __escuser~1{uid}~1feeds__ 在indexes选项卡中,它是这样存储的 ...{ "collectionId": "user/{uid}/feeds", "fields": [..] }..
...{
"collectionId": "user/{uid}/feeds",
"fields": [..]
}...
__escuser~1{uid}~1feeds__
在indexes选项卡中,它是这样存储的
...{
"collectionId": "user/{uid}/feeds",
"fields": [..]
}...
__escuser~1{uid}~1feeds__
不知道我是否正确创建了它。当你创建索引时,它实际上告诉你手动运行一次要创建索引的查询,然后它将生成一个URL,你可以复制粘贴到浏览器中等等 这就是你如何做到的:
npm init
npm i--保存firebase管理员
index.js
const admin = require('firebase-admin');
const serviceAccount = require('./firebase-creds.json');
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: 'https://projectId.firebaseio.com'
});
function runQuery() {
db
.collection('users')
.doc(someRandomUserId)
.collection('feed')
.where('read', '==', false)
.where('timestamp', '<=', 1509889854742) //Or something else
.get()
.then(doc => {
console.log(doc.data());
})
.catch(error => console.log(error));
};
runQuery();
或者直接进入数据库的管理面板,在那里添加提要的索引。这似乎由@michael bleigh在这里回答: 云Firestore索引基于集合名称,而不是完整的集合路径。因此,如果要在
用户/{id}/消息
上创建索引,正确的方法是在消息
上创建索引
对不起,您能澄清一下“子集合索引”是什么意思吗?你想做什么?有一个用户集合,每个
用户
集合都有另一个提要
集合,我无法为子集合添加索引~@Shaxrillo我看到有人提到这个功能是计划好的,但还没有实现。而且它不会在beta版中实现。我也想要这个特性tank you@Chris,但我想手动添加它,而不是通过自动生成的urlOk,不管怎样,结果都是一样的,但请参见上面的内容。您不指定“子集合路径”,只指定集合id@Shaxrillo@Chris,但什么是“集合id”?我在firestore层次结构的不同部分有多个同名集合。e、 g./汽车/{carIds}/models和/杂志/{magazineId}/models如果我在“models”上放一个索引,firebase会对这两个集合应用索引吗?如果我想能够独立地为所有收藏编制索引,我是否必须为所有收藏命名唯一的名称?@Chris我想你误解了他想要的“子收藏索引”的意义。它不是索引到一个文档中的特定集合,而是索引每个文档中具有相同名称的每个集合。在firestore的计划中,但不存在yet@Thaina你确定这还不存在吗?你能指出你读这篇文章的地方吗?