2017-10-20 8 views
8

मैं जानता हूँ कि Realtime Database में मैं push ID मिल सकता है कि इससे पहले कि यह इस तरह जोड़ा गया है:फायरस्टोर - क्या यह जोड़ा गया था इससे पहले आईडी प्राप्त करना संभव है?

DatabaseReference databaseReference= FirebaseDatabase.getInstance().getReference(); 
     String challengeId=databaseReference.push().getKey(); 

और की तुलना में मैं इसे इस आईडी का उपयोग कर जोड़ सकते हैं।

मैं Cloud Firestore?

उत्तर

18

यह documentation में कवर किया जाता है में भी मिल सकता है। एक दस्तावेज़ खंड जोड़ने के अंतिम अनुच्छेद देखें।

DocumentReference ref = db.collection("my_collection").document(); 
String myId = ref.getId(); 
+0

क्या यह संभव है कि जेनरेट आईडी प्राप्त होने से पहले इसे जोड़ा जाने से पहले अन्य डेटा ओवरराइड हो जाए? (क्योंकि यह आईडी पहले उत्पन्न हुई थी ...) –

+0

मेरे साथ ऐसा ही हुआ ... फायरस्टोर '.document() में डेटाबेस में संचार के साथ इंप्रेशन की इंप्रेशन नहीं देता है,' push ') था। मेरा मानना ​​है कि सामान्य विचार यह है कि आईडी टकराव की संभावित हूड इतनी कम है कि हमें इससे चिंतित होने की आवश्यकता नहीं है। – 34m0

+0

मुझे लगता है कि यह एक और प्रश्न के लिए है ... –

4

projectsRef firestore संग्रह रेफरी है।

डेटा वह वस्तु है, जिसमें आप फायरस्टोर पर अपलोड करना चाहते हैं।

एएफएस angularfirestore मॉड्यूल निर्माता में इंजेक्शन

आप तरीके निम्नलिखित में ऐसा कर सकते हैं (कोड AngularFire2 v5, जो firebase SDK के किसी अन्य संस्करण के समान है के लिए है का कहना है कि वेब, नोड आदि)

है
const pushkey = this.afs.createId(); 
const project = {' pushKey': pushkey, ...data }; 
this.projectsRef.doc(pushkey).set(project); 

इस संग्रह में एक नया दस्तावेज़ उत्पन्न होगा pushKey पर अपनी आईडी के साथ projectsRef कहा जाता है और उस दस्तावेज़ pushKey संपत्ति दस्तावेज़ के आईडी

याद रखें, रों के रूप में ही होगा और किसी भी मौजूदा डेटा को भी हटा देगा

असल में .add() और .doc()। सेट() .add() के साथ समान हैं। आईडी स्वचालित रूप से जेनरेट की गई है, .doc() के साथ सेट करें।) कस्टम आईडी प्रदान कर सकते हैं।

संबंधित मुद्दे