कस्टम आईडी के साथ दस्तावेज़ को फायरस्टार में कैसे जोड़ें


106

क्या कस्टम जनरेटेड आईडी के साथ फायरस्टार संग्रह में दस्तावेज़ जोड़ने का कोई मौका है, न कि आईडी फायरस्टार इंजन द्वारा उत्पन्न?

जवाबों:


217

कस्टम आईडी का उपयोग करने के लिए आपको .setइसके बजाय उपयोग करने की आवश्यकता है.add

यह आईडी "LA" के साथ एक दस्तावेज बनाता है:

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

यह यहां आधिकारिक डॉक्स से लिया गया है


1
अगर मुझे डॉक्टर से जोड़ना है तो क्या होगा "LA"? यह काम नहीं करेगा: .doc("LA").add({...})कृपया बताएं कि मैं ऐसा कैसे कर सकता हूं।
शुभम कुशवाह

3
.add()के बराबर है.doc().set()
roshnet

अगर हम custome id जोड़ना चाहते हैं तो हमें .doc ()। Set () के बजाय add () का प्रयोग करना होगा
Bilal Yaqoob


7

स्वीकार किए गए उत्तर पर विस्तार करने के लिए, यदि आप कभी भी अपने ग्राहक को createId()फायरस्टार पर धकेलने से पहले डॉक्टर के लिए एक यादृच्छिक आईडी उत्पन्न करना चाहते हैं (यह मानते हुए कि एक ही कार्य AngularFire2 के बाहर मौजूद है)

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

फायरस्टार कुछ भी बचाता है, इससे पहले ही आईडी को किसी अन्य दस्तावेज़ में संदर्भ क्षेत्र के रूप में सेट करने के लिए यह उपयोगी है। यदि आपको तुरंत सहेजे गए ऑब्जेक्ट का उपयोग करने की आवश्यकता नहीं है, तो यह आपको आईडी की प्रतीक्षा नहीं करके प्रक्रिया को गति देता है। set()कॉल अब पाइप आप कोणीय में उपयोग कर रहे हैं से अतुल्यकालिक है

ध्यान दें, मैंने id: newIdसेट ऑब्जेक्ट में नहीं डाला था , क्योंकि फायरस्टार डिफ़ॉल्ट रूप से आईडी को डॉक में एक क्षेत्र के रूप में नहीं बचाता है


3

आप इसे इस तरह से कर सकते हैं

// 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 ( "उन")। दस्तावेज़ (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();
        }
    });
}

1

आईडी के साथ नया दस्तावेज़ बनाएं

  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);
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.