क्या कस्टम जनरेटेड आईडी के साथ फायरस्टार संग्रह में दस्तावेज़ जोड़ने का कोई मौका है, न कि आईडी फायरस्टार इंजन द्वारा उत्पन्न?
क्या कस्टम जनरेटेड आईडी के साथ फायरस्टार संग्रह में दस्तावेज़ जोड़ने का कोई मौका है, न कि आईडी फायरस्टार इंजन द्वारा उत्पन्न?
जवाबों:
.add()
के बराबर है.doc().set()
this.afs.collection('[your collection]').doc('[your ID]').set([your document]);
स्वीकार किए गए उत्तर पर विस्तार करने के लिए, यदि आप कभी भी अपने ग्राहक को createId()
फायरस्टार पर धकेलने से पहले डॉक्टर के लिए एक यादृच्छिक आईडी उत्पन्न करना चाहते हैं (यह मानते हुए कि एक ही कार्य AngularFire2 के बाहर मौजूद है)
const newId = db.createId();
db.collection("cities").doc(newId).set({
name: "Los Angeles",
state: "CA",
country: "USA"
})
फायरस्टार कुछ भी बचाता है, इससे पहले ही आईडी को किसी अन्य दस्तावेज़ में संदर्भ क्षेत्र के रूप में सेट करने के लिए यह उपयोगी है। यदि आपको तुरंत सहेजे गए ऑब्जेक्ट का उपयोग करने की आवश्यकता नहीं है, तो यह आपको आईडी की प्रतीक्षा नहीं करके प्रक्रिया को गति देता है। set()
कॉल अब पाइप आप कोणीय में उपयोग कर रहे हैं से अतुल्यकालिक है
ध्यान दें, मैंने id: newId
सेट ऑब्जेक्ट में नहीं डाला था , क्योंकि फायरस्टार डिफ़ॉल्ट रूप से आईडी को डॉक में एक क्षेत्र के रूप में नहीं बचाता है
आप इसे इस तरह से कर सकते हैं
// 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 ( "उन")। दस्तावेज़ (mAuth.getUid ())। सेट (उपयोगकर्ता)
यहां, संग्रह का "users"
नाम है और दस्तावेज़ का नाम उपयोगकर्ता हैUID
यहाँ यू का उपयोग करने की आवश्यकता set
नहीं है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();
}
});
}
आईडी के साथ नया दस्तावेज़ बनाएं
createDocumentWithId<T>(ref: string, document: T, docId: string) {
return this.afs.collection(ref).doc<T>(docId).set(document);
}
EX: दस्तावेज़ के लिए ID के रूप में ईमेल के साथ यह उदाहरण है
this.fsService.createDocumentWithId('db/users', {}, credential.user.email);
"LA"
? यह काम नहीं करेगा:.doc("LA").add({...})
कृपया बताएं कि मैं ऐसा कैसे कर सकता हूं।