Apakah ada peluang untuk menambahkan dokumen ke koleksi firestore dengan id yang dibuat khusus, bukan id yang dibuat oleh mesin firestore?
javascript
firebase
google-cloud-firestore
Harvey Dent
sumber
sumber
"LA"
? Ini tidak akan berhasil:.doc("LA").add({...})
Tolong beritahu bagaimana saya bisa melakukannya..add()
setara dengan.doc().set()
this.afs.collection('[your collection]').doc('[your ID]').set([your document]);
sumber
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 sudutPerhatikan saya tidak memasukkan
id: newId
objek yang disetel, karena Firestore secara default tidak menyimpan ID sebagai bidang di dokumensumber
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);
sumber
db.collection ("pengguna"). dokumen (mAuth.getUid ()). set (pengguna)
Di sini, nama koleksi adalah
"users"
dan nama dokumen adalah penggunaUID
Di sini u perlu menggunakan
set
tidakadd
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(); } }); }
sumber
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);
sumber