gpt4 book ai didi

java - 如何在 Android 中提供 Firestore 身份验证?

转载 作者:行者123 更新时间:2023-12-02 08:47:47 35 4
gpt4 key购买 nike

我正在制作一个 Android 应用程序来管理财务。每个用户在我的数据库 financierusers 集合下都有自己的详细信息。我没有使用任何类型的登录方法。这是使用我的自定义表格进行的自定义注册。

目前,由于应用程序正在开发中,我一直在更改数据库规则以接受给定日期之前的任何请求。

我希望用户在我的凭据下进行操作。我不想在任何地方发布此应用程序,但我希望对应用程序进行身份验证,就像在 NodeJs 中使用 service-account-key.json 一样。

如果我将JSON文件放入我的项目中,导出APK时是否会导出它?如果是这样,任何用户都可以通过取出 JSON 文件来获取我的数据库的凭据吗?

最佳答案

如果我理解正确的话,您正在考虑将您的服务帐户凭据包含在应用程序中,然后将其发送给用户。我强烈建议不要这样做。

原则上,您在 APK 中包含的任何信息或应用程序在运行时加载的任何信息都可能被该应用程序的用户拦截。如果他们这样做,服务帐户凭据将使他们能够完全、不受限制地访问您的项目。

<小时/>

保护访问安全的最常见方法是让用户登录 Firebase 身份验证,并在数据库的安全规则和 Cloud Functions 中使用该信息。

您可以让他们使用现有提供商登录、构建您自己的自定义提供商,甚至可以使用匿名身份验证(这意味着他们不必输入任何凭据)。所有这些的共同点是用户获得一个 UID 和一个 token ,这些 token 会随每个请求传递到服务器和数据库,并且无法伪造。

这实际上是在 APK 中包含服务帐户凭据的另一个危险:它们会允许恶意用户为您的项目伪造自己的 token /UID。

<小时/>

不需要使用 Firebase 身份验证登录的替代方法是将所有数据访问路由到您编写的自定义后端(在您自己的服务器上或在 Cloud Functions 中)。但这意味着您必须确保所有访问都在该服务器端代码中获得授权。因此,您本质上是在服务器端代码中编写,否则您将在 Firebase 的服务器端安全规则中编写这些代码。

关于java - 如何在 Android 中提供 Firestore 身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60973310/

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