gpt4 book ai didi

android - 如何在请求数据时以及在我们未使用 firebase 身份验证的情况下为 firebase firestore 编写安全规则?

转载 作者:行者123 更新时间:2023-11-29 02:20:26 26 4
gpt4 key购买 nike

我使用 Firebase Firestore 进行数据库存储。我有一个场景,我需要使用电话号码和 OTP 来管理用户登录和注销。并且由于 Firebase 身份验证使用电子邮件 ID 管理身份验证,或者如果您想在每次需要使用 OTP 验证它时将其与电话号码一起使用,这对我的应用程序来说是不可行的,所以,我创建了自己的身份验证过程,其中我使用了一次 OTP 身份验证并将用户数据存储到集合中,然后在用户登录后我直接从集合中检查它。

它现在运行良好,但由于我想限制用户读取数据库,因此在更改安全规则时遇到问题。但是我不知道如何写它,因为到目前为止我已经找到了很多解决方案,但是所有的解决方案都在请求中进行了身份验证,但是由于我没有使用身份验证,所以我可能在请求中没有进行身份验证并且可能会发现它为空。

service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write : if true;
}
}
}

我已经授予对所有集合的读写权限,因此,任何拥有 key 的人都可以访问数据库,但我想使用安全规则来限制它,并且我已经找到了一种在创建或更新时限制用户的方法,就像我将做的那样在请求设置或更新时获取资源,但在读取或获取数据时它可能没有资源,因为我没有传递任何数据。因此,如果您知道我该如何编写此类规则,请帮助我。提前致谢...

最佳答案

收件人allow only users that are authentication with Firebase access to data ,你的规则是:

allow read, write: if request.auth.uid != null;

如果没有 Firebase 身份验证,就不可能做到这一点,因为将有关用户的数据传递到安全规则中的唯一方法是通过 Firebase 身份验证。

如果您有自己的身份验证机制,您可以将其实现为 custom provider within Firebase Authentication .在这种方法中,您使用服务器端代码根据您拥有的有关用户的信息生成 Firebase token ,然后来自该 token 的信息在 auth.token 下的安全规则中可用。

关于android - 如何在请求数据时以及在我们未使用 firebase 身份验证的情况下为 firebase firestore 编写安全规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56291839/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com