我正在为Android开发多人反应本机游戏,这只是一个文字游戏。 目前,我仅在客户端上工作,但现在我已经逐渐达到需要选择一种管理数据的方式。由于我一直在尝试学习新知识(也是第一次使用RN),所以我遇到了Firestore,我很好奇它是否是我项目中的可行选择。
例如,在这个游戏中,您可以购买/开设公司。如果要在nodejs + MongoDB中处理此操作,则将JWT令牌发送到server/api/newcompany
。
假设我有2个MongoDB模型,Users
包含所有用户信息,Company
包含游戏中所有公司的列表。首先,我将检查用户是否有足够的钱来开设公司,然后根据该信息返回一些消息,我的代码将是这样的:
// routes.js
...
router.post('/api/newcompany',AuthCheck, Company.new)
// controllers/company.js
...
new: async function (req, res, next) {
if (!req.body.companyType || !validCompanyType) {
return res.status(200).send('invalid/missing message and other failed checks')
}
//assuming token data would be passed from auth middleware and would have company prices somewhere
const user = await Users.find({id:token.userId})
if (user.money < companyPrice) {
res.status(200).send('no money')
} else {
const newCompany = new Company()
newCompany.name = req.body.name
...
new.Companny.save(function(){
res.status(200).send('all good')
})
}
}
在Firestore上,我有与上述相同的2个文档。 Users
以及由其ID标识的子文档(用户)列表和文档Companies
。
我可以进行与上述相同的用户检查吗? 我该如何处理?我会使用Firestore规则来检查用户是否有足够的资金,还是将我的服务器与admin SDK一起作为中介来处理更复杂的操作,并使用直接的Firestore连接来仅检索数据?
感谢您的时间。