有没有办法Firebase Authentication在不需要 SHA-1
key 的情况下在开源应用中工作?
我已经开源了 Android code对于 Coinverse ,第一个用于移动音频广播的加密货币新闻应用程序,以分享 Android 最佳实践和架构。目标是让开发人员从 Android Studio 运行反编译的应用程序并登录。
我已经为 Firestore 数据库、存储、YouTube API 等完成了以下工作,以便开发人员从 GitHub 下载项目时按预期工作:
- 新的开源 Firebase 项目
- 新的 API key
- Firestore 数据库 budget limit
- Firestore 安全 Firestore和 Storage规则
最佳答案
共享和私有(private) Firebase 实例
策略 - 创建一个开源 共享 Firebase 实例以提供对共享数据和 Cloud Functions 的访问,并让开发人员下载GitHub 项目通过 google-services.json 文件创建自己的私有(private) Firebase 身份验证实例作为默认实例。
专业提示 - 请务必为每个需要它的 Firebase 项目识别唯一的 SHA-1
key ,否则会出现身份验证错误outlined here .
共享 Firebase 项目
- 使用 Use multiple projects in your application 初始化共享的开源 Firebase 项目程序化实现(将项目与用于发布的非共享暂存 和生产 项目分开)。 -
FirebaseApp.getInstance("openSourceProject")
注意:setProjectId(...)
还需要为FirebaseOptions< 设置
尽管在上面的链接中没有提及,但使用的服务(例如存储)的任何其他 setter 。 - 使用来自共享 Firestore 项目的公共(public)内容和价格数据填充应用 -
FirebaseFirestore.getInstance(FirebaseApp.getInstance("openSourceProject"))
- 使用共享的 Cloud Functions 和 Firebase Storage 从存储 .txt 文件创建 .mp3 文件并从存储访问 .mp3s。 -
FirebaseStorage.getInstance(FirebaseApp.getInstance("openSourceProject"))
和FirebaseFunctions.getInstance(FirebaseApp.getInstance("openSourceProject"))
用户的私有(private) Firebase 项目
- 通过 google-services.json 文件初始化为默认的 Firebase 项目实例。
- 用于使用他们的
SHA-1
key 进行身份验证 - 将登录的用户数据保存到他们的 Firestore 实例 -
FirebaseFirestore.getInstance()
- 为 delete user functionality 创建一个 Firebase token
关于android - Firebase 身份验证 - 开源 Android 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57236063/