Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Android中提供Firestore身份验证?_Java_Android_Firebase_Authentication_Google Cloud Firestore - Fatal编程技术网

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

Java 如何在Android中提供Firestore身份验证?,java,android,firebase,authentication,google-cloud-firestore,Java,Android,Firebase,Authentication,Google Cloud Firestore,我正在制作一个Android应用程序来管理财务。每个用户在“我的数据库金融家”中的“集合用户”下都有自己的详细信息。我没有使用任何类型的登录方法。这是一个与我的自定义表单自定义注册 目前,我一直在更改数据库规则,以便在应用程序开发过程中,在给定日期之前接受任何请求 我希望用户使用我的凭据进行操作。我不想在任何地方发布这个应用程序,但我希望应用程序能够通过身份验证,就像在NodeJs中使用service-account-key.json一样 如果我把JSON文件放在我的项目中,它会在导出APK时导

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

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

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


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

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

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

保护访问安全的最常见方法是,将用户的身份签入Firebase身份验证,并在数据库的安全规则和云函数中使用该信息

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

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

另一种不需要使用Firebase身份验证登录的方法是,将对数据的所有访问路由到您在自己的服务器上或云功能中编写的自定义后端。但这意味着您还必须确保在服务器端代码中授权所有访问。因此,您基本上是在编写服务器端代码,而不是在Firebase的服务器端安全规则中编写的代码