Доступ к устранению неполадок в поле ATTR в Таблице?

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

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

На данный момент одним из решений было бы поддерживать счетчик числа детей и обновлять его каждый раз, когда вы добавляете нового ребенка. Вы можете использовать транзакцию для подсчета элементов, например, в этом обновлении отслеживания кода:

var upvotesRef = new Firebase('https://docs-examples.firebaseio.com/android/saving-data/fireblog/posts/-JRHTHaIs-jNPLXOQivY/upvotes');
upvotesRef.transaction(function (current_value) {
  return (current_value || 0) + 1;
});

Для получения дополнительной информации см. https://www.firebase.com/docs/transactions.html

UPDATE: Firebase недавно выпустила функции облака. С облачными функциями вам не нужно создавать собственный сервер. Вы можете просто написать функции JavaScript и загрузить его в Firebase. Firebase будет отвечать за запуск функций всякий раз, когда происходит событие.

Если вы хотите, например, подсчитать верхние значения, вы должны создать структуру, подобную этой:

{
  "posts" : {
    "-JRHTHaIs-jNPLXOQivY" : {
      "upvotes_count":5,
      "upvotes" : {
      "userX" : true,
      "userY" : true,
      "userZ" : true,
      ...
    }
    }
  }
}

И затем напишите функцию javascript, чтобы увеличить upvotes_count, когда на узел upvotes появилась новая запись.

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

exports.countlikes = functions.database.ref('/posts/$postid/upvotes').onWrite(event => {
  return event.data.ref.parent.child('upvotes_count').set(event.data.numChildren());
});

Вы можете прочитать Documentation , чтобы знать, как Начните работу с облачными функциями .

Кроме того, здесь приведен пример других учетных записей: https://github.com/firebase/functions-samples/blob/master/ ребенок-счет / функция / index.js

0
задан Prakhar Gajbhiye 29 March 2019 в 13:11
поделиться