Wenn Sie einen Index erstellen, werden Sie aufgefordert, die Abfrage, die Sie einen Index für einmal erstellen manuell ausführen möchten, und dann wird eine URL generiert, die Sie in den Browser einfügen kopieren können et voila!
Dies ist, wie Sie es tun:
- ein neues Verzeichnis
index.js
die folgende Funktion in das Dokument einfügen erstellen
npm init
npm i --save firebase-admin
- erstellen
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();
Run node index.js
Dies wird someting wie diese ausspucken:
{ 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 ...}
Kopieren Sie den Link und fügen Sie ihn in Ihrem Browser.
aktualisieren
den Index manuell hinzuzufügen (über die CLI) Sie Folgendes tun können:
{
"indexes": [
{
"collectionId": "feed",
"fields": [
{ "fieldPath": "read", "mode": "ASCENDING" },
{ "fieldPath": "timestamp", "mode": "ASCENDING" },
...
]
}
]
}
Oder einfach in die Admin-Panel in der Datenbank gehen und fügen Sie dort den Index für Feeds hinzu.
Sorry, können Sie klarstellen, was Sie unter "Subcollection Indexes" verstehen? Was versuchst du zu machen? –
Es gibt eine Benutzersammlung und jede 'user'-Sammlung hat eine andere' feeds'-Sammlung und ich kann keine Indizes für Untersammlungen hinzufügen ~ https://firebase.google.com/docs/firestore/query-data/indexing – Shaxrillo
@Shaxrillo Ich habe irgendwo erwähnt, dass dieses Feature geplant, aber noch nicht implementiert wurde. Und es wäre nicht in der Beta implementiert. Ich möchte auch diese Funktion – Thaina