有没有办法让Firebase Authentication在开源应用程序中工作而不需要SHA-1
键?
为了分享android的最佳实践和架构,我为Android code开源了Coinverse,这是第一款面向移动音频广播的加密货币新闻应用程序。目标是让开发人员从android studio运行已编译的应用程序并登录。
我已经为firestore数据库、存储、youtube api等做了以下工作,以便开发人员从github下载项目时能够像预期的那样工作:
新的开源firebase项目
新的API密钥
Firestore数据库budget limit
Firestore安全Firestore和Storage规则
最佳答案
共享和私有firebase实例
策略-创建一个开源的共享firebase实例以提供对共享数据和云功能的访问,并让下载github项目的开发人员创建自己的私有firebase实例,以便通过google-services.json文件作为默认实例进行身份验证。
pro tip-确保为每个需要它的firebase项目标识一个唯一的SHA-1
密钥,否则将出现身份验证错误outlined here。
共享firebase项目
使用Use multiple projects in your application编程实现初始化共享开源firebase项目(将项目与用于发布的非共享登台和生产项目分开)。-FirebaseApp.getInstance("openSourceProject")
注意:setProjectId(...)
也需要为FirebaseOptions
设置,尽管在上面的链接中没有提到,也需要为使用的服务(如存储)设置任何其他设置器。
使用共享Firestore项目中的公共内容和价格数据填充应用程序-FirebaseFirestore.getInstance(FirebaseApp.getInstance("openSourceProject"))
使用共享云功能和firebase存储从storage.txt文件创建.mp3文件并从storage访问.mp3。-FirebaseStorage.getInstance(FirebaseApp.getInstance("openSourceProject"))
和FirebaseFunctions.getInstance(FirebaseApp.getInstance("openSourceProject"))
用户的私有firebase项目
通过google-services.json文件初始化为默认的firebase项目实例。
使用其SHA-1
密钥进行身份验证
将登录的用户数据保存到他们的firestore实例-FirebaseFirestore.getInstance()
为delete user functionality创建firebase令牌