【发布时间】:2017-03-16 10:57:23
【问题描述】:
过去两天我一直在为我的 Firebase 项目的规则而苦苦挣扎。我的数据结构是这样的:
Users{
wildCardID{
username:John
gender:male
StripeInfo{
accountID:myaccountid
secretpublishablekey:thekey
someothersecretinfo:secretinfo
}
pushToken{
tokenid:mytokenid
}
}
}
所以我的问题是,我无法在注册方面制定正确的规则。在注册期间,我只需在用户中创建一个新的 autoByID,但如果我在用户中设置“.read”:true,每个人都可以在 StripeInfo 子项中简单地看到 secretpublishablekey 和 someothersecretinfo。我将如何避免这种情况?我试图设置“.read”:“auth === $uid(在这种情况下,wildCardID)”,但由于Firebase规则的结构(据我所知),一旦授予权限,它不能再次被取消。我该如何解决我的这个问题?
我希望用户注册一个用户,我希望用户名是“.read”:true,因为您必须在注册期间检查用户名是否正在使用中。但是,要在我的应用程序中进行购买,用户需要在 StripeInfo 子项中检索其他用户的 accountID,因此将其设置为“.read”:“auth !== null”。但其余数据(secretpublishablekey 和 someothersecretinfo)将设置为“.read”:“auth.uid === $uid”。
当我尝试实现 .write 时也会出现此问题。我只是希望用户编辑他们自己的个人详细信息,或者如果有新的注册 - 我希望用户能够在用户中创建一个新的孩子。我该怎么做才不会搞砸?我现在已经搜索了很多地方,但没有得到任何信息。不可能吗?
如果我在 users 中将 .write 设置为 true,它只是授予其他用户编辑其他用户详细信息的权限,我真的想防止这种情况发生,并尽快解决这个问题。有人可以帮帮我吗?
【问题讨论】:
-
有没有办法解决这个问题?
标签: firebase-realtime-database firebase-security