ファイヤーストアエンジンによって生成されたIDではなく、カスタム生成されたIDを使用してドキュメントをファイヤーストアコレクションに追加する機会はありますか?
回答:
this.afs.collection('[your collection]').doc('[your ID]').set([your document]);
受け入れられた回答を拡張するために、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をドキュメントのフィールドとして保存しないため、setオブジェクトを入力しなかったことに注意してください。
あなたはこのようにそれを行うことができます
// 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.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();
}
});
}
"LA"
ですか?これは機能しません:.doc("LA").add({...})
どうすればそれができるか教えてください。