我正在建立一个在平衡系统上工作的网站,用户将向我付款并更新他们在网站上的余额。他们可以使用此余额购买网站上的项目。我正在使用firebase以这种形式存储他们的余额:
root
----users
--------<uid>
------------balance: 10...
遵守这些规则:
{
"rules": {
"users": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
}
}
}
当用户在网站上购买某些内容时,我希望系统能够自动从firebase中的余额中减去一个值,但根据我当前的规则,具有firebase知识的恶意用户可以编写自己的应用程序编辑他们的余额。
我的应用程序是否有办法在他们以安全且无法由任何人完成的方式存款或购买某些内容时自动更新余额?
注意:我是firebase的新手。
答案 0 :(得分:1)
您可能希望查看Cloud Functions for Firebase以在安全环境中编写一些后端代码。您可以编写一个Cloud Function,在用户具有该访问权限的数据库位置进行写入时触发。然后,当您的功能触发时,它可以访问&#34; admin&#34;对用户只能读取的其他数据库位置具有写访问权限的引用。
通过这种方式,您可以有效地实现一种&#34;命令队列&#34;因此,用户采取的操作可以使用只有您控制的逻辑在数据库中的任何位置进行更改。