Firebase, как найти ребенка, зная его идентификатор, но не идентификатор его родителя (js) - PullRequest
0 голосов
/ 12 октября 2018

У меня есть структура базы данных реального времени (не облачной), например:

users
  kasdf872ajsda   //user id
     auiiq6d182g1   //list id
        c: <mycontent>   //list content

Я знаю идентификатор списка (в данном случае auiiq6d182g1) и хочу получить <mycontent>, но я не знаюне знаю идентификатор пользователя kasdf872ajsda, потому что то, что я собираюсь получить, вероятно, не от пользователя, который в данный момент использует веб-сайт (и на самом деле я не устанавливаю никаких правил базы данных для «чтения», только для «записи»)это правильно?).

Что я сейчас делаю, так это (не работает):

var ref = firebase.database().ref().child('users');
ref.child(listID).once("value", function(snapshot) {
  var snap = snapshot.val();
  myContent = snap.c;
});

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Нашел решение, если кто-то должен столкнуться с той же проблемой:

ref.once("value", function(snapshot) {
      snapshot.forEach(function(data) {
        snap = data.child(<YOUR_LIST_ID>).child('c').val();
        if (snap != null){
          myContent = snap;
        }
      });
});

также ref вопреки тому, что все говорят, должно быть:

var ref = firebase.database().ref().child('users');

это не такработа:

var ref = firebase.database().ref('users');
0 голосов
/ 13 октября 2018

Сначала вы можете поставить ссылку на пользователя: var ref = firebase.database().ref('users');

Затем выполнить цикл:

ref.once('value').then((snapshot)=>{
   snapshot.forEach(function(data) {
      if (data.key == <YOUR_LIST_ID>) {
         //you can access data.c here...
      }
  });
});  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...