ফায়ারস্টোর ইঞ্জিন দ্বারা উত্পাদিত আইডি নয়, কাস্টম উত্পাদিত আইডি সহ ফায়ার স্টোর সংগ্রহে কোনও ডকুমেন্ট যুক্ত করার কোনও সুযোগ আছে কি?
ফায়ারস্টোর ইঞ্জিন দ্বারা উত্পাদিত আইডি নয়, কাস্টম উত্পাদিত আইডি সহ ফায়ার স্টোর সংগ্রহে কোনও ডকুমেন্ট যুক্ত করার কোনও সুযোগ আছে কি?
উত্তর:
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.colલેક્શન ("ব্যবহারকারী")। নথি (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);
}
উদাহরণস্বরূপ: দস্তাবেজের আইডি হিসাবে ইমেল নেওয়ার সাথে এই উদাহরণ
this.fsService.createDocumentWithId('db/users', {}, credential.user.email);
"LA"
? এটি কাজ করবে না:.doc("LA").add({...})
দয়া করে বলুন আমি কীভাবে এটি করতে পারি।