Моя текущая структура базы данных выглядит следующим образом:
, которая в основном имеет таблицу mobile_users и таблицу 100 лучших, которая будет таблицей лидеров.
Я пытаюсь выяснить, как написать облачную функцию, которая выполняется каждую минуту, которая обновляет / заполняет таблицу top100 с помощью идентификатора пользователя, earned_points от mobile_users и сортирует его по earned_points.
Должен ли я добавить поле ранга в эту таблицуили есть способ упорядочить таблицу из порядка asc / desc на основе mobile_users?
Моя текущая функция выглядит так
exports.dbRefOnWriteEvent = functions.database.ref('/mobile_user/{userId}/{earned_points}').onWrite(event => {
var ref = admin.database().ref("/top100");
ref.orderByChild("earned_points").once("value", function(dataSnapshot) {
var i = 0;
dataSnapshot.forEach(function(childSnapshot) {
var r = (dataSnapshot.numChildren() - i);
childSnapshot.ref.update({rank: r},function(error) {
if (error != null)
console.log("update error: " + error);
});
i++;
});
});
});
Мне еще предстоит выяснить, как определить облакоФункция для выполнения каждую минуту.У меня проблемы с структурированием запросов такого типа.
Моей функции также не удается заполнить таблицу top100 этими тремя текущими пользователями.Я был бы признателен, если бы кто-то мог указать мне правильное направление.