Apakah ada peluang untuk menambahkan dokumen ke koleksi firestore dengan id yang dibuat khusus, bukan id yang dibuat oleh mesin firestore?
Apakah ada peluang untuk menambahkan dokumen ke koleksi firestore dengan id yang dibuat khusus, bukan id yang dibuat oleh mesin firestore?
Jawaban:
this.afs.collection('[your collection]').doc('[your ID]').set([your document]);
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: newId
objek yang disetel, karena Firestore secara default tidak menyimpan ID sebagai bidang di dokumen
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);
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();
}
});
}
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);
"LA"
? Ini tidak akan berhasil:.doc("LA").add({...})
Tolong beritahu bagaimana saya bisa melakukannya.