インデックスを作成すると、手動でインデックスを作成するクエリを実行するよう実際に指示され、次にブラウザに貼り付けることができるURLが生成されます。
これは、あなたがそれを行う方法です。
npm init
npm i --save firebase-admin
- 新しいディレクトリを作成し、文書に次の関数を入れ
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();
node index.js
実行して、これは、このようないろいろ書いを吐き出すます:
{ Error: The query requires an index. You can create it here: https://console.firebase.google.com/project/project-projectID/database/firestore/indexes?create_index=longRandomString ...}
は、リンクをコピーしてブラウザに貼り付けます。
更新
(CLI経由)、手動でインデックスを追加するには、次の操作を実行できます。
{
"indexes": [
{
"collectionId": "feed",
"fields": [
{ "fieldPath": "read", "mode": "ASCENDING" },
{ "fieldPath": "timestamp", "mode": "ASCENDING" },
...
]
}
]
}
それとも単にデータベース内の管理パネルに行きますフィードのインデックスを追加します。
申し訳ありませんが、あなたは "サブコレクションインデックス"の意味を明確にできますか?あなたは何をしようとしているのですか? –
ユーザーコレクションがあり、各 'user'コレクションには別の' feeds'コレクションがあり、サブコレクションのインデックスを追加できません〜https://firebase.google.com/docs/firestore/query-data/indexing – Shaxrillo
@ Shaxrillo私はどこかでこの機能が計画されていたがまだ実装されていないことを見てきました。ベータ版では実装されません。私もこの機能が欲しい – Thaina