Удаление документа Firestore, когда ID установлен на имя, которое нигде не предопределено - PullRequest
0 голосов
/ 24 февраля 2020

В настоящее время у меня есть база пользователей. Для каждого идентификатора документа присваивается начальное имя пользователя после подписания, однако это имя пользователя могло со временем измениться, а имя документа - нет.

У меня вопрос, как мне получить документ по имени? и удалить его?

Я пытался использовать

"db.collection('Users').where('user_id', '==', this.user.uid)" 

, который я использую в другом месте, чтобы сопоставить аутентификацию с профилем пользователя в другом месте, но не уверен, как удалить весь документ как ". delete () "сразу после ошибки выдает.

Есть идеи?

1 Ответ

3 голосов
/ 24 февраля 2020

Обновите после вашего комментария ниже (объясняя, что на самом деле this.user.uid не является идентификатором документа Firestore)

Таким образом, вы действительно должны выполнить запрос, и когда вы получите результат В этом запросе (в методе then()) удалите (уникальный) документ, возвращаемый запросом, следующим образом:

var query = db.collection('Users').where('user_id', '==', this.user.uid);

query.get()
.then(function(querySnapshot) {
    var docSnapshot = querySnapshot.docs[0];   // We get the first (and unique) document of the querySnapshot
    docSnapshot.ref.delete();
});

Вам не нужно использовать Запрос для этого (использование where() определяет запрос).

Вы можете просто указать на документ (то есть определить DocumentReference) и вызвать delete() следующим образом.

db.collection('Users').doc(this.user.uid).delete();
...