¿Existe la posibilidad de agregar un documento a la colección de firestore con una identificación generada de manera personalizada, no la identificación generada por el motor de firestore?
javascript
firebase
google-cloud-firestore
Harvey Dent
fuente
fuente
"LA"
? Esto no funcionará: por.doc("LA").add({...})
favor, diga cómo puedo hacer eso..add()
es equivalente a.doc().set()
this.afs.collection('[your collection]').doc('[your ID]').set([your document]);
fuente
Para ampliar la respuesta aceptada, si alguna vez quiso que su cliente generara una ID aleatoria para el documento antes
createId()
de enviarlo a Firestore (asumiendo que la misma función existe fuera de AngularFire2)const newId = db.createId(); db.collection("cities").doc(newId).set({ name: "Los Angeles", state: "CA", country: "USA" })
Esto es útil para configurar el ID como un campo de referencia en otro documento, incluso antes de que Firestore guarde algo. Si no necesita usar el objeto guardado de inmediato, esto acelera el proceso al no hacerle esperar la identificación. La
set()
llamada ahora es asincrónica desde la tubería que podría estar usando en AngularObserve que no puse
id: newId
el objeto establecido, porque Firestore de forma predeterminada no guarda la ID como un campo en el documento.fuente
Puedes hacerlo de esta manera
// 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);
fuente
db.collection ("usuarios"). document (mAuth.getUid ()). set (usuario)
Aquí, el nombre de la colección es
"users"
y el nombre del documento es el del usuario.UID
Aquí necesitas usar
set
noadd
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(); } }); }
fuente
Crear nuevo documento con identificación
createDocumentWithId<T>(ref: string, document: T, docId: string) { return this.afs.collection(ref).doc<T>(docId).set(document); }
EX: este ejemplo toma el correo electrónico como ID para el documento
this.fsService.createDocumentWithId('db/users', {}, credential.user.email);
fuente