Bagaimana cara menambahkan Dokumen dengan ID Kustom ke firestore


Jawaban:


200

Untuk menggunakan ID khusus, Anda perlu menggunakan .set, bukan.add

Ini membuat dokumen dengan ID "LA":

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

Ini diambil dari dokumen resmi di sini


1
Bagaimana jika saya ingin menambahkan ke dokumen "LA"? Ini tidak akan berhasil: .doc("LA").add({...})Tolong beritahu bagaimana saya bisa melakukannya.
Shubham Kushwah

2
.add()setara dengan.doc().set()
roshnet

16
this.afs.collection('[your collection]').doc('[your ID]').set([your document]);

2
Beberapa penjelasan akan membantu di sini!
pengguna3483203

7

Untuk memperluas jawaban yang diterima, jika Anda ingin klien Anda membuat ID acak untuk dokumen tersebut sebelum mendorong ke Firestore (dengan asumsi createId()fungsi yang sama ada di luar AngularFire2)

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

Ini berguna untuk menyetel ID sebagai bidang referensi di dokumen lain, bahkan sebelum Firestore menyimpan apa pun. Jika Anda tidak perlu langsung menggunakan objek yang disimpan, ini mempercepat proses dengan tidak membuat Anda menunggu ID. The set()panggilan sekarang asynchronous dari pipa Anda mungkin menggunakan di sudut

Perhatikan saya tidak memasukkan id: newIdobjek yang disetel, karena Firestore secara default tidak menyimpan ID sebagai bidang di dokumen


2

Anda bisa melakukannya dengan cara ini

// 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);

1

db.collection ("pengguna"). dokumen (mAuth.getUid ()). set (pengguna)

Di sini, nama koleksi adalah "users"dan nama dokumen adalah penggunaUID

Di sini u perlu menggunakan settidakadd

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

1

Buat Dokumen baru dengan ID

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

EX: contoh ini dengan mengambil email sebagai ID untuk dokumen tersebut

this.fsService.createDocumentWithId('db/users', {}, credential.user.email);
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.