Firebase身份验证 - 开源Android应用程序

3

在不需要 SHA-1 密钥的情况下,Firebase Authentication 是否可以在开源应用程序中运行?

我已经开源了 Coinverse,这是第一个支持加密货币新闻音频播客的 Android 应用程序,并分享了 Android 的最佳实践和架构。目标是让开发人员从 Android Studio 运行反编译后的应用程序并进行登录。

为了使 Firestore 数据库、存储、YouTube API 等正常工作,我已经采取了以下措施,以便开发人员可以从 GitHub 下载项目并使用:


开源代码是一回事,但听起来你也希望所有贡献者使用同一个Firebase项目。我理解得对吗?这相当不寻常。更常见的做法是让贡献者为自己的开发使用自己的Firebase项目,然后在发布时使用你自己的非共享Firebase项目。这对你的用例行不通吗? - Frank van Puffelen
@FrankvanPuffelen - 有两个非共享Firebase项目用于发布的_staging_和_production_。还有第三个共享项目,为开源代码提供数据和功能。为了使应用程序正常工作,Firestore中有共享数据的反馈,存储中有.txt文件,并且有一个云函数将.txt文件转换为.mp3文件。您的评论为我提供了下面提出的混合方法来创建一个共享项目,该项目提供对后端数据和云函数的访问,而不会暴露后端代码,并允许用户进行身份验证。 - AdamHurwitz
1个回答

1

分享和私有 Firebase 实例

策略 - 创建一个开源共享 Firebase 实例,提供对共享数据和云功能的访问,并要求下载 GitHub 项目的开发人员创建自己的私有 Firebase 实例,用于身份验证并通过 google-services.json 文件作为默认实例。

专业提示 - 确保针对每个需要它的 Firebase 项目识别唯一的 SHA-1 密钥,否则会出现身份验证错误 在此处概述

共享 Firebase 项目

  • 使用编程实现在应用程序中使用多个项目,初始化共享的开源 Firebase 项目(与用于发布的非共享stagingproduction项目分开)。- FirebaseApp.getInstance("openSourceProject") 注意:虽然上面的链接没有提到,但也需要为FirebaseOptions设置setProjectId(...)以及其他所使用服务的任何其他setter,例如Storage。
  • 从共享的Firestore项目中填充应用程序的公共内容和价格数据 - FirebaseFirestore.getInstance(FirebaseApp.getInstance("openSourceProject"))
  • 使用共享的Cloud Functions和Firebase Storage从Storage的.txt文件创建.mp3文件并访问Storage中的.mp3s。- FirebaseStorage.getInstance(FirebaseApp.getInstance("openSourceProject"))FirebaseFunctions.getInstance(FirebaseApp.getInstance("openSourceProject"))

用户的私有Firebase项目

  • 通过google-services.json文件将其初始化为默认的Firebase项目实例。
  • 使用他们的SHA-1密钥进行身份验证
  • 将已登录用户数据保存到他们的Firestore实例 - FirebaseFirestore.getInstance()
  • 删除用户功能创建Firebase令牌

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接