【发布时间】:2021-08-26 18:28:00
【问题描述】:
我想根据 Firestore 中存储的正确答案安全地检查用户的给定答案。首先,我认为我可以检查是否存在具有用户给定答案的文档,但是通过像这样迭代集合来获取所有文档 ID 及其字段非常容易:
db.doc(`quizzes/quiz1`).collection('question1').get().then((querySnapshot) => {
querySnapshot.forEach((doc) => {
console.log('doc.id: ' , doc.id)
console.log('doc.data: ' , doc.data())
})
})
我可以想象通过首先将 givenAnswer 写入特定 userDocument 中的 Firestore 来实现我的需要,然后检查安全规则中的读取操作,如果该值与 correctAnswer 相同,但它会花费额外的费用写操作...
所以我认为必须有一种方法可以在读取操作中传递 givenAnswer 并在 givenAnswer 和 correctAnswer 匹配时检查安全规则。
阅读有关为用户创建自定义令牌的信息,但我不确定这是否可行(我不知道这些令牌如何工作......)因为有必要更改自定义令牌的值每次新尝试比较给定的答案。
希望有人能解决我正在尝试做的事情
非常感谢!
【问题讨论】:
标签: security google-cloud-firestore token firebase-security