ফায়ারস্টোরের রেফারেন্স ব্যবহার করে আমার জন্য কী কাজ করেছে নীচে যুক্ত করা।
অন্য উত্তরগুলি যেমন বলে, এটি একটি বিদেশী কী এর মতো। রেফারেন্স বৈশিষ্ট্যটি যদিও রেফারেন্স ডকের ডেটা ফেরত দেয় না। উদাহরণস্বরূপ, আমার পণ্যগুলির একটি তালিকা রয়েছে, যার সাথে একটি ব্যবহারকারীর রেফ উল্লেখ রয়েছে পণ্যটির অন্যতম বৈশিষ্ট্য হিসাবে। পণ্যগুলির তালিকা পেতে, আমাকে সেই পণ্যটি তৈরির ব্যবহারকারীর রেফারেন্স দেয়। তবে এটি আমাকে সেই তথ্যসূত্রটিতে বিশদটি দেয় না। আমি অন্যান্য ব্যাক এন্ড পয়েন্টার সহ একটি পরিষেবা হিসাবে ব্যবহার করেছি তার আগে "পপুলেট: ট্রু" পতাকাটি যা ব্যবহারকারীর কেবলমাত্র রেফারেন্স আইডির পরিবর্তে ব্যবহারকারীকে বিশদ বিবরণ দেয়, যা এখানে রাখলে দুর্দান্ত হবে (আশা করি ভবিষ্যতের উন্নতি হবে) )।
নীচে কিছু উদাহরণ কোড দেওয়া হয়েছে যা আমি রেফারেন্স সেট করতে পাশাপাশি পণ্য তালিকা সংগ্রহ করতে ব্যবহার করে তারপরে দেওয়া ব্যবহারকারী রেফারেন্স আইডি থেকে ব্যবহারকারীর বিবরণ পেতে পারি।
একটি সংগ্রহে একটি রেফারেন্স সেট করুন:
let data = {
name: 'productName',
size: 'medium',
userRef: db.doc('users/' + firebase.auth().currentUser.uid)
};
db.collection('products').add(data);
প্রতিটি দস্তাবেজের একটি সংগ্রহ (পণ্য) এবং সমস্ত উল্লেখ (ব্যবহারকারীর বিবরণ) পান:
db.collection('products').get()
.then(res => {
vm.mainListItems = [];
res.forEach(doc => {
let newItem = doc.data();
newItem.id = doc.id;
if (newItem.userRef) {
newItem.userRef.get()
.then(res => {
newItem.userData = res.data()
vm.mainListItems.push(newItem);
})
.catch(err => console.error(err));
} else {
vm.mainListItems.push(newItem);
}
});
})
.catch(err => { console.error(err) });
আশাকরি এটা সাহায্য করবে