首页 > 解决方案 > 使用 Google gmail 身份验证的 React-Native App 访问 Firestore

问题描述

我已经阅读了 Firebase 文档、大量文章和 stackoverflow 帖子,但没有找到任何关于使用基于 Firebase Gmail 的身份验证来访问 Firebase firestore 集合的内容。大多数文章的 Firestore 都处于开放访问的测试模式,或者他们使用 Firebase 的电子邮件/密码身份验证和 firestore 中的集合。Firebase 的电子邮件/密码身份验证与电子邮件/密码显示以下规则。

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

这不起作用,因为在从 firestore 请求数据时,我无法传递 uid(Gmail 没有)。

理想情况下,我想使用从 Firebase Gmail 身份验证返回的 JWT 并将其发送到 Firestore 请求。同样,我找不到使用令牌的 Firebase firestore 的单个示例。

如果有文章、文档或只是经验,请告诉我。

提前致谢

标签: firebasereact-nativegoogle-cloud-firestorefirebase-security

解决方案


无法手动“发送”带有查询的 JWT。在您的应用中使用 Firebase 客户端 SDK 时,如果您还使用 Firebase 身份验证对用户进行身份验证,身份验证令牌只能与查询一起自动发送。如果您不使用 Firebase 身份验证,则不会有标识用户的令牌,这意味着您根本无法request.auth在安全规则中使用。

Firebase 身份验证确实支持 Google 作为身份验证提供程序,因此如果您想编写有效的安全规则,您应该能够在您的应用中同时使用这两者。


推荐阅读