Firestore에 Custom ID가있는 문서를 추가하는 방법


답변:


199

맞춤 ID를 사용하려면 .set대신 을 사용해야합니다 ..add

이렇게하면 ID가 "LA"인 문서가 생성됩니다.

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

이것은 공식 문서 에서 가져온 것입니다.


1
문서에 추가하려면 어떻게해야 "LA"합니까? 작동하지 않습니다. .doc("LA").add({...})어떻게 할 수 있는지 알려주세요.
Shubham Kushwah

2
.add()다음과 같습니다.doc().set()
roshnet

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

2
여기에 몇 가지 설명이 도움이 될 것입니다!
user3483203

7

허용되는 답변을 확장하기 위해 클라이언트가 Firestore로 푸시하기 전에 문서에 대해 임의의 ID를 생성하도록하려는 경우 ( createId()AngularFire2 외부에 동일한 함수가 있다고 가정 )

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

이것은 Firestore가 아무것도 저장하기 전에도 ID를 다른 문서의 참조 필드로 설정하는 데 유용합니다. 저장된 개체를 즉시 사용할 필요가없는 경우 ID를 기다리지 않아도되므로 프로세스 속도가 빨라집니다. set()전화는 각도에 이용 될 수있는 파이프에서 지금 비동기

공지 사항 난 넣지 않았다 id: newId기본적으로 경우 FireStore는 ID 저장하지 않기 때문에 문서에 필드로, 설정된 객체


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.collection ( "users"). document (mAuth.getUid ()). set (user)

여기에서 컬렉션의 이름은 "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

ID로 새 문서 만들기

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

예 : 이메일을 문서의 ID로 사용하는이 예

this.fsService.createDocumentWithId('db/users', {}, credential.user.email);
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.