Firestore'a Özel Kimlikli Belge nasıl eklenir?


Yanıtlar:


199

Özel bir kimlik kullanmak için kullanmak .setyerine kullanmanız gerekir.add

Bu, "LA" kimliğine sahip bir belge oluşturur:

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

Bu resmi dokümanlar alınır burada


1
Ya dokümana eklemek istersem "LA"? Bu işe yaramaz: .doc("LA").add({...})Lütfen bunu nasıl yapabilirim söyleyin.
Shubham Kushwah

2
.add()eşdeğerdir.doc().set()
roshnet

16
this.afs.collection('[your collection]').doc('[your ID]').set([your document]);

2
Burada bazı açıklamalar yardımcı olacaktır!
user3483203

7

Kabul edilen yanıtı genişletmek için, müşterinizin Firestore'a göndermeden önce belge için rastgele bir kimlik oluşturmasını istiyorsanız (aynı createId()işlevin AngularFire2 dışında var olduğunu varsayarak )

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

Bu, Firestore herhangi bir şey kaydetmeden önce kimliği başka bir belgede referans alanı olarak ayarlamak için kullanışlıdır. Kaydedilen nesneyi hemen kullanmanız gerekmiyorsa, bu sizi kimliği bekletmeden süreci hızlandırır. set()Çağrı Eğer açısal içinde kullanıyor olabilirsiniz borusundan artık eşzamansızsa

id: newIdAyarlanan nesneyi koymadığıma dikkat edin çünkü Firestore varsayılan olarak kimliği dokümanda bir alan olarak kaydetmez


2

Bu şekilde yapabilirsin

// 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 ("kullanıcılar"). belge (mAuth.getUid ()). set (kullanıcı)

Burada, koleksiyonun "users"adı ve belge adı kullanıcınınUID

Burada kullanman setgerekmiyoradd

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

Kimliği olan yeni Belge oluştur

  createDocumentWithId<T>(ref: string, document: T, docId: string) {
    return this.afs.collection(ref).doc<T>(docId).set(document);
  }

EX: bu örnek e-postayı belge için kimlik olarak alır

this.fsService.createDocumentWithId('db/users', {}, credential.user.email);
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.