【问题标题】:React-Native App access Firestore with Google gmail authenication使用 Google gmail 身份验证的 React-Native App 访问 Firestore
【发布时间】:2020-01-07 05:27:07
【问题描述】:

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

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

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

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

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

提前致谢

【问题讨论】:

    标签: firebase react-native google-cloud-firestore firebase-security


    【解决方案1】:

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

    Firebase 身份验证执行support Google as an authentication provider,因此如果您想编写有效的安全规则,您应该能够在您的应用中同时使用这两者。

    【讨论】:

    • 感谢您的快速回复。只是为了确认一下,如果我使用 Firebase Auth 电子邮件/密码以外的任何东西进行身份验证,例如 Google gmail,它将无法正常工作。 Firebase Cloud Function 从客户端获取 JWT,验证然后查询 Firestore 是否有效?
    • 您可以使用 Firebase 身份验证支持的任何身份验证提供程序,甚至可以使用您自己的自定义身份验证提供程序。但是您必须使用 Firebase 身份验证来管理令牌和登录。您不能单独使用 Google 身份验证,因为它不知道如何将任何相关信息注入到由数据库 SDK 管理的查询中。
    猜你喜欢
    • 2021-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-14
    • 2017-01-22
    • 2021-10-03
    • 2021-10-31
    • 2021-01-03
    相关资源
    最近更新 更多