Как обновить много записей в коллекции, используя Firebase? - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть это, чтобы попытаться обновить имя пользователя в сообщениях:

let postsRef = firebase.database().ref('posts/');
postsRef.child('username').update({'username': "josh2"})

Проблема в том, что сообщение находится под ключом, например:

posts

  |
  ---- -MOFidfjdUSJFDJ
          |
          ----- username: josh (username)
          |
          ----- text: some text 1
  |
  ---- -MOFifdjfhd
          |
          ----- username: josh (username)
          |
          ----- text: some text 2
  ---- -MOjfdjsiJidJ
          |
          ----- username: marie (username)
          |
          ----- text: some text

Мне бы хотелось обновить любой posts, где имя пользователя от josh до josh2. Как я могу это сделать? Большое спасибо.

1 Ответ

1 голос
/ 21 апреля 2020

Вы можете сделать следующее:

var postRef = firebase.database().ref('posts').orderByChild("username").equalTo("josh");
postRef.on('value', ((snapshot) {
   snapshot.forEach((subChild) => {
    firebase.database().ref('posts').child(subChild.key).update({"username" :"josh2"});
  });
});

https://firebase.google.com/docs/database/web/read-and-write

Итак, здесь вы создаете запрос, чтобы проверить, равно ли имя пользователя jo sh, затем вы получаете все сообщения этого пользователя, затем, используя свойство key, вы можете получить ключ сообщения и обновить его.

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