ফায়ার স্টোরে কীভাবে কাস্টম আইডি সহ ডকুমেন্ট যুক্ত করা যায়


95

ফায়ারস্টোর ইঞ্জিন দ্বারা উত্পাদিত আইডি নয়, কাস্টম উত্পাদিত আইডি সহ ফায়ার স্টোর সংগ্রহে কোনও ডকুমেন্ট যুক্ত করার কোনও সুযোগ আছে কি?

উত্তর:


199

একটি কাস্টম আইডি ব্যবহার করার .setপরিবর্তে আপনার প্রয়োজন use.add

এটি "এলএ" আইডি সহ একটি নথি তৈরি করে:

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

এটি এখানে অফিসিয়াল ডক্স থেকে নেওয়া হয়েছে


4
আমি যদি ডকটিতে যুক্ত করতে চাই তবে কী হবে "LA"? এটি কাজ করবে না: .doc("LA").add({...})দয়া করে বলুন আমি কীভাবে এটি করতে পারি।
শুভম কুশওয়াহ

4
.add()সমতুল্য.doc().set()
রোশনেট


7

গৃহীত উত্তরের উপর প্রসারিত করার জন্য, আপনি যদি কখনও চান যে আপনার ক্লায়েন্ট ফায়ারস্টোরের দিকে ধাক্কা দেওয়ার আগে createId()ডকটির জন্য একটি এলোমেলো আইডি তৈরি করতে পারে (ধরে নিলেন একই কাজটি AngularFire2 এর বাইরে রয়েছে)

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

ফায়ারস্টোর কিছু সংরক্ষণ করার আগেই এটি অন্য নথিতে রেফারেন্স ফিল্ড হিসাবে আইডি সেট করার জন্য দরকারী। আপনার যদি এখনই সংরক্ষিত অবজেক্টটি ব্যবহার করার দরকার না হয় তবে আপনাকে আইডির জন্য অপেক্ষা না করে প্রক্রিয়াটি গতি বাড়ায়। set()কল এখনই নল আপনি কৌণিক ব্যবহার করা যেতে পারে থেকে অ্যাসিঙ্ক্রোনাস হয়

লক্ষ্য করুন আমি id: newIdসেট অবজেক্টটিতে রাখিনি, কারণ ফায়ার স্টোরটি ডিফল্টরূপে আইডিকে নথিতে কোনও ক্ষেত্র হিসাবে সংরক্ষণ করে না


2

আপনি এটি এইভাবে করতে পারেন

// 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.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();
        }
    });
}

1

আইডি সহ নতুন ডকুমেন্ট তৈরি করুন

  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);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.