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

标签 android firebase authentication firebase-authentication

有没有办法Firebase Authentication在不需要 SHA-1 key 的情况下在开源应用中工作?

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

我已经为 Firestore 数据库、存储、YouTube API 等完成了以下工作,以便开发人员从 GitHub 下载项目时按预期工作:

最佳答案

共享和私有(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/

相关文章:

android - 如何使用 firebase 数据库引用在 android studio 中创建带有代码的节点

ruby-on-rails - 设计创建用户并登录测试设置

reactjs - Auth0。如何获取访问 token 中用户的权限?

android - ListView 中的文本阻止在 Android 中触发点击事件

java - String downloadThumbUri = uploadTask.getResult().getStorage().getDownloadUrl().toString();不适用于上传任务

android - 完成后退操作后,键盘无法编辑文本

android - FirebaseUI + Firebase 数据库 RecyclerView : No adapter attached; skipping layout inside fragment

google-app-engine - 使用 Google App Engine 和 GWT 进行用户身份验证

android - onBind/onRebind 未在服务中调用

Android Canvas 在相机上画线