Firebase: объединить запрос и дочерний приемник событий - PullRequest
0 голосов
/ 06 июня 2018

У меня есть структура, похожая на эту

{
  posts : {
    post1Key: {
      title : "First Post",
      comments : {
        comment1Key : {},
        comment2Key : {},
        comment3Key : {}
      }
    }
  }
  ...
}

И я использую «обновленные дочерние события» на ключе «/ posts / post1Key / comments» для прослушивания новых комментариев.

Как мне объединить Firebase Query и прослушиватели событий.

Редактировать: Я знаю, что это возможно с Firebase, однако я использую nativescript-plugin-firebase

Ответы [ 2 ]

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

На момент написания статьи это невозможно с использованием nativescript-plugin-firebase.Обходной путь - выполнить сортировку / фильтрацию в EventHandler после получения данных.

var onChildEvent = function(result) {
  //
  // Sort: result.value here
  //
};

// listen to changes in the /users path
firebase.addChildEventListener(onChildEvent, "/users").then(
  function(listenerWrapper) {
    var path = listenerWrapper.path;
    var listeners = listenerWrapper.listeners; // an Array of listeners added
    // you can store the wrapper somewhere to later call 'removeEventListeners'
  }
);
0 голосов
/ 06 июня 2018

Вы можете очень хорошо объединить Query, определенный с помощью метода orderBy..., и слушателя с методом on(): см. Подробный документ здесь

Например, вы можете сделатьчто-то вроде

var query = db.ref('node1').orderByChild('firstName');

query.on('value', function(dataSnapshot) {
  dataSnapshot.forEach(function(childSnapshot) {
    var childKey = childSnapshot.key;
    console.log(childKey);
    var childData = childSnapshot.val();
    console.log(childData); 
  });
});

Каждый раз, когда новый подузел добавляется в «node1», вы получите список детей, упорядоченный по firstName

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