Come aggiungere Documento con ID Personalizzato per firestore

C’è la possibilità di aggiungere un documento firestore collezione personalizzato con l’id generato, non l’id generato da firestore motore?

Grazie in anticipo per le vostre risposte.

 

5 Replies
  1. 89

    Per l’utilizzo di un ID personalizzato è necessario utilizzare .set, piuttosto che .add

    Questo crea un documento con l’ID di “LA”:

    db.collection("cities").doc("LA").set({
        name: "Los Angeles",
        state: "CA",
        country: "USA"
    })

    Dalla documentazione ufficiale qui

    • Cosa posso aggiungere a doc "LA"? Questo non funziona: .doc("LA").add({...}) si Prega di dire come posso fare.
    • Nevermind ho capito, siamo in grado di utilizzare update() per che.
  2. 8
    this.afs.collection('[your collection]').doc('[your ID]').set([your document]);
    • Qualche spiegazione sarebbe utile qui!
  3. 3

    Di espandere il accettato di rispondere, se avete sempre voluto il vostro client per generare un ID casuale per il doc prima di spingere per Firestore (supponendo che la stessa createId() funzione esiste al di fuori di AngularFire2)

    const newId = db.createId();
    db.collection("cities").doc(newId).set({
        name: "Los Angeles",
        state: "CA",
        country: "USA"
    })
    

    Questo è utile per impostare l’ID come un campo di riferimento in un altro documento, anche prima Firestore salva nulla. Se non avete bisogno di utilizzare l’oggetto salvato subito, questo accelera il processo di non farvi attendere per l’ID. Il set() chiamata è ora asincrona dal tubo, si potrebbe essere utilizzando un angolo di

    Notare non ho messo id: newId in oggetto, perché Firestore per impostazione predefinita non salva l’ID come un campo di doc

  4. 1

    db.raccolta(“utenti”).documento(mAuth.getUid()).set(utente)

    Qui, il nome della collezione è "users" e il nome del documento da parte dell’utente che UID

    Qui u bisogno di utilizzare set non add

    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();
            }
        });
    }
  5. 1

    Creare un nuovo Documento con ID

      createDocumentWithId<T>(ref: string, document: T, docId: string) {
        return this.afs.collection(ref).doc<T>(docId).set(document);
      }

    EX: in questo esempio con la posta elettronica come ID del documento

    this.fsService.createDocumentWithId('db/users', {}, credential.user.email);

Lascia un commento