обновить документ облачного пожарного магазина без идентификатора - PullRequest
0 голосов
/ 05 февраля 2019

My Cloud Firestore выглядит следующим образом:

users
  ├────random_id_1───{name, email, ...}
  ├────random_id_2───{name, email, ...}
 ...
  └────random_id_n───{name, email, ...}

Я хочу обновить документ пользователей , учитывая, что у меня есть уникальный идентификатор для него, который НЕ является случайным идентификатором документа(предположим, например, что имя уникально, и я хочу использовать его в качестве идентификатора).

Как я могу обновить документ, идентифицируя его по полю?

1 Ответ

0 голосов
/ 05 февраля 2019

Firestore может обновлять только те документы, для которых ему известны полные ссылки, для которых требуется идентификатор документа.В вашей текущей структуре вам нужно будет выполнить запрос, чтобы найти документ.Так что-то вроде:

firebase.firestore().collection("users")
  .where("name", "==", "Daniel")
  .get(function(querySnapshot) {
    querySnapshot.forEach(function(document) {
     document.ref.update({ ... }); 
    });
  });

Если у вас есть другой уникальный атрибут, я бы всегда рекомендовал использовать его в качестве идентификаторов для документов.Таким образом, вы автоматически гарантируете, что на пользователя может существовать только один документ, и вы избавляете себя от необходимости делать запрос, чтобы найти документ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...