Удалить значение из базы данных Firebase - PullRequest
0 голосов
/ 05 июня 2018

Я использую OneSignal для отправки push-уведомлений из облачных функций.Ответ OneSignal также отправляет мне массив с player ids, который не работает.Я хотел бы удалить их из базы данных.Есть ли способ удалить их, не зная userKey?

База данных:

playerIds
    userKey
      player_id1: true,
      plaher_id2: true

Облачная функция:

      let errors = response.errors.invalid_player_ids;

      let playerIdsRef = admin.database().ref('/playerIds/');

      for (let error of errors) {
        console.log(error)
        playerIdsRef.orderByChild(error).equalTo(true).on("value", function (snapshot) {
          console.log(snapshot);
          console.log(snapshot.val()); //this returns null
          snapshot.delete(); // this returns snapshot.delete is not a function

        });
      }

1 Ответ

0 голосов
/ 07 июня 2018

Вот как я решил свою проблему:

    if (response.errors.invalid_player_ids.length > 0) {
      const errors = response.errors.invalid_player_ids;
      const playerIdsRef = admin.database().ref('/playerIds/');

      for (let error of errors) {
        playerIdsRef.orderByChild(error).equalTo(true).once("value", (snapshot) {
          const snapshotValue = snapshot.val();
          const key = Object.keys(snapshotValue)[0];
          //or
          //const key = Object.keys(snapshot.val())[0];
          playerIdsRef.child(key).child(error).set(null);
        });
      }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...