Ich weiß, dass Realtime Database
ich das bekommen konnte, push ID
bevor es so hinzugefügt wurde:
DatabaseReference databaseReference= FirebaseDatabase.getInstance().getReference();
String challengeId=databaseReference.push().getKey();
und dann könnte ich es mit dieser ID hinzufügen.
Kann ich es auch in der bekommen Cloud Firestore?
this.db.collection('collections').ref.doc().id
quelle
Sie können dies auf folgende Weise tun (Code ist für AngularFire2 v5, das jeder anderen Version des Firebase-SDK ähnelt, z. B. Web, Knoten usw.).
projectsRef ist die Referenz für die Firestore-Sammlung.
Daten sind ein Objekt mit Schlüssel, Wert, den Sie in den Firestore hochladen möchten.
afs ist ein Angularfirestore-Modul, das in den Konstruktor injiziert wird.
Dadurch wird in Collection ein neues Dokument mit dem Namen projectsRef generiert, dessen ID als pushKey angegeben wird. Dieses Dokument verfügt über die PushKey-Eigenschaft, die mit der ID des Dokuments identisch ist.
Denken Sie daran, set löscht auch alle vorhandenen Daten
Tatsächlich sind .add () und .doc (). Set () dieselben Operationen. Aber mit .add () wird die ID automatisch generiert und mit .doc (). Set () können Sie eine benutzerdefinierte ID angeben.
quelle
IDK, wenn dies hilft, aber ich wollte die ID für das Dokument aus der Firestore-Datenbank abrufen, dh Daten, die bereits in die Konsole eingegeben wurden.
Ich wollte eine einfache Möglichkeit, im laufenden Betrieb auf diese ID zuzugreifen, und fügte sie einfach wie folgt zum Dokumentobjekt hinzu:
Jetzt kann ich darauf zugreifen,
id
genau wie auf jede andere Immobilie.IDK, warum das
id
nicht nur ein Teil von überhaupt ist.data()
!quelle
Die einfachste und aktualisierteste (2019) Methode, die die richtige Antwort auf die Hauptfrage ist:
quelle
Dies wird leider nicht funktionieren:
Es funktioniert nicht, da die zweite Anweisung ausgeführt wird, bevor die documentID die Dokument-ID abgerufen hat. Sie müssen also warten, bis die documentID vollständig geladen ist, bevor Sie das nächste Dokument festlegen:
Es ist nicht die schönste, aber es ist die einzige Möglichkeit, das zu tun, was Sie verlangen. Dieser Code ist in
Swift 5
.quelle
In Dart können Sie verwenden:
quelle
Für die Laufzeit von node.js.
Dadurch wird ein neues Dokument mit einer zufälligen ID erstellt und der Dokumentinhalt auf festgelegt
Hoffe das erklärt gut, wie das funktioniert
quelle
Das funktioniert bei mir. Ich aktualisiere das Dokument während derselben Transaktion. Ich erstelle das Dokument und aktualisiere das Dokument sofort mit der Dokument-ID.
Es wäre schön, einen saubereren Weg zu finden, aber bis dahin funktioniert das für mich.
quelle
Im Knoten
quelle
So erhalten Sie eine ID nach dem Speichern in Python:
quelle
Dokumente für generierte ID
Wir können in den Dokumenten für
doc()
Methode sehen. Sie generieren eine neue ID und erstellen einfach eine neue ID-Basis darauf. Stellen Sie dann neue Daten mit derset()
Methode ein.quelle