Есть ли шанс добавить документ в коллекцию firestore с пользовательским сгенерированным идентификатором, а не с идентификатором, сгенерированным движком firestore?
javascript
firebase
google-cloud-firestore
Харви Дент
источник
источник
"LA"
? Это не сработает:.doc("LA").add({...})
скажите, пожалуйста, как я могу это сделать..add()
эквивалентно.doc().set()
this.afs.collection('[your collection]').doc('[your ID]').set([your document]);
источник
Чтобы расширить принятый ответ, если вы когда-либо хотели, чтобы ваш клиент генерировал случайный идентификатор для документа перед отправкой в Firestore (при условии, что такая же
createId()
функция существует за пределами AngularFire2)const newId = db.createId(); db.collection("cities").doc(newId).set({ name: "Los Angeles", state: "CA", country: "USA" })
Это полезно для установки идентификатора в качестве справочного поля в другом документе, даже до того, как Firestore что-либо сохранит. Если вам не нужно сразу использовать сохраненный объект, это ускоряет процесс, не заставляя вас ждать идентификатора.
set()
Вызов теперь асинхронно из трубы можно использовать в угловомуОбратите внимание, что я не вставил
id: newId
заданный объект, потому что Firestore по умолчанию не сохраняет идентификатор как поле в документе.источник
Вы можете сделать это так
// 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 ("пользователи"). document (mAuth.getUid ()). set (пользователь)
Здесь имя коллекции,
"users"
а имя документа - пользовательUID
Здесь вам нужно использовать
set
notadd
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); }
EX: этот пример с использованием электронной почты в качестве идентификатора документа
this.fsService.createDocumentWithId('db/users', {}, credential.user.email);
источник