我正在尝试使用 Firebase 实时数据库创建排名命令。首先,我在输入时遇到了问题,但我相信我已经解决了。但是现在我遇到了“用户不足”消息的问题,该消息一直在发送。但除此之外,如果我删除它,该命令可以工作,但它说所有用户的钱都是 0。有人知道怎么回事吗?
Json 文件示例:
{
"Users": {
"12345678912345678" : {
"Economy" : {
money: 500
}
},
"98989898989898989" : {
"Economy" : {
money: 100
}
},
"45454545454545454" : {
"Economy" : {
money: 9700
}
}
}
}
命令:
require('firebase').default.database().ref('Users').once('value').then(money => {
let entries = Object.entries(money.val());
entries = entries.filter(o => o[1].Economy.money);
entries.sort((a, b) => b[1].Economy.money - a[1].Economy.money);
var page = args[0]
if(!page || isNaN(page) || page > 9) {
page = 0
num = 10
} else {
page = (args[0] - 1)
num = page + 10
}
if(entries.length < num) return message.channel.send(({embed: {description: `:x: There are not enough users for this page!`, color: 'RED'}}));
var x = entries.map(([key, value], i) => (i + 1) + ". " + (client.users.cache.get(key) ? client.users.cache.get(key).tag : "Unknown#0000") + "\nMoney: " + (value["money"] || 0) + "\n\n").slice(page, num).join("")
const embed = new Discord.MessageEmbed()
.setTitle("Global Ranking")
.setDescription(x)
.setFooter(`Page ${(!args[0] || isNaN(parseInt(args[0]))) ? 1 : args[0]}`)
message.channel.send(embed)
})