У меня есть следующая функция, которая ранжирует пользователей в моей таблице mobile_user по eanred_points и присваивает им ранг.Это делается каждый раз, когда я вызываю триггер http-запроса.
Я хотел бы создать еще один корневой узел, называемый таблицей лидеров, который помещает в него только 10 лучших пользователей.
Моя текущая функция выглядит следующим образом:
exports.leaderboardUpdate2 = functions.https.onRequest((req, res) =>{
var ref = admin.database().ref("/mobile_user");
ref.orderByChild("earned_points").once("value", function(dataSnapshot) {
var i = 0;
dataSnapshot.forEach(function(childSnapshot) {
var childRef = childSnapshot.ref;
var r = (dataSnapshot.numChildren() - i);
childRef.update({rank: r},function(error) {
if (error != null)
console.log("update error: " + error);
});
i++;
});
});
res.status(200).send("Updated mobile users ranks");
});
Как мне пойти и сделать это?Приветствуется любая помощь или совет.
Редактировать: моя структура таблицы mobile_user выглядит следующим образом: