Gibt es eine Möglichkeit, der Firestore-Sammlung ein Dokument mit einer benutzerdefinierten generierten ID hinzuzufügen, nicht der von der Firestore-Engine generierten ID?
javascript
firebase
google-cloud-firestore
Harvey Dent
quelle
quelle
"LA"
? Das wird nicht funktionieren:.doc("LA").add({...})
Bitte sagen Sie, wie ich das machen kann..add()
entspricht.doc().set()
this.afs.collection('[your collection]').doc('[your ID]').set([your document]);
quelle
Um die akzeptierte Antwort zu erweitern, falls Sie jemals wollten, dass Ihr Client eine zufällige ID für das Dokument generiert, bevor Sie zu Firestore
createId()
wechseln (vorausgesetzt, dieselbe Funktion existiert außerhalb von AngularFire2).const newId = db.createId(); db.collection("cities").doc(newId).set({ name: "Los Angeles", state: "CA", country: "USA" })
Dies ist nützlich, um die ID als Referenzfeld in einem anderen Dokument festzulegen, noch bevor Firestore etwas speichert. Wenn Sie das gespeicherte Objekt nicht sofort verwenden müssen, beschleunigt dies den Vorgang, da Sie nicht auf die ID warten müssen. Der
set()
Aufruf ist jetzt asynchron von der Pipe, die Sie möglicherweise in Angular verwendenBeachten Sie, dass ich
id: newId
das festgelegte Objekt nicht eingefügt habe , da Firestore die ID standardmäßig nicht als Feld im Dokument speichertquelle
Sie können es so machen
// Inject AngularFirestore as dependency private angularFireStore: AngularFirestore // from from 'angularfire2/firestore' // set user object to be added into the document let user = { id: this.angularFireStore.createId(), name: 'new user' ... } // Then, finally add the created object to the firebase document angularFireStore.collection('users').doc(user.id).set(user);
quelle
db.collection ("Benutzer"). document (mAuth.getUid ()). set (Benutzer)
Hier lautet der Name der Sammlung
"users"
und der Dokumentname der des BenutzersUID
Hier musst du
set
nicht verwendenadd
private void storeData(String name, String email, String phone) { // Create a new user with a first and last name Map<String, Object> user = new HashMap<>(); user.put("name", name); user.put("email", email); user.put("phone", phone); // Add a new document with a generated ID db.collection("users").document(mAuth.getUid()).set(user) .addOnSuccessListener(new OnSuccessListener<Void>() { @Override public void onSuccess(Void aVoid) { Toasty.success(context,"Register sucess",Toast.LENGTH_SHORT).show(); } }); }
quelle
Erstellen Sie ein neues Dokument mit ID
createDocumentWithId<T>(ref: string, document: T, docId: string) { return this.afs.collection(ref).doc<T>(docId).set(document); }
EX: In diesem Beispiel wird E-Mail als ID für das Dokument verwendet
this.fsService.createDocumentWithId('db/users', {}, credential.user.email);
quelle