firebase - 如何使用 FireBase Auth UI 从 Android 应用程序使用 Google Drive?

标签 firebase firebase-authentication google-drive-android-api

我在我的应用程序中实现了 Firebase 身份验证,使用 Google 提供程序和“https://www.googleapis.com/auth/drive.appdata”范围,因此我的应用程序可以访问其在 Google 云端硬盘中的应用程序文件夹

这部分工作正常,我在身份验证完成后检索 FireBaseUser 我现在想做的是访问我在 Google Drive 上的应用存储,但我不知道如何使用当前身份验证的结果来执行此操作

我试图遵循这个:https://github.com/gsuitedevs/java-samples/blob/master/drive/quickstart/src/main/java/DriveQuickstart.java

但这在 Android 上不起作用。 主要问题是如何创建 Credentials 对象 您是否知道如何初始化 Drive.Builder 实例以便我可以写入/读取应用程序 Google Drive 文件夹?

谢谢

最佳答案

这不能直接完成,因为 Firebase 和 Google 登录名不同,即使使用 Google 帐户登录到 Firebase 也是如此。同时在 Android 上只有“最后登录的 Google 帐户”可用于用户的驱动器(设备上的那个,与 Firebase 身份验证无关,Google 只能用作“身份验证提供者”)。

所以通常有两种选择可供您选择:

我还可以想到一种组合解决方案,用户可以使用云存储(连同 Firebase 身份验证)并拥有一个使用服务帐户的云功能,例如。将上传的文件复制或移动到您的驱动器的文件夹中。

关于那个(显然是服务器端的)Java 示例,credentials.json 清楚地暗示了一个服务帐户……而这正是您可以从中获取此文件的地方。然而,对于 Android 来说,这是非常无用的——因为它具有重大的安全隐患,将服务帐户凭据打包在一个易于反编译的包中并在 WWW 上分发(给所有人)。 Google Play 商店可能不允许您发布甚至上传该内容,因为存在安全检查。在最好的情况下,您只能将该代码部署为 App Engine 模块,而不是部署为 Android 模块。

很抱歉打破了您的幻想,并且无法为 500 个虚构的互联网点提供现成的解决方案,这些点无需支付任何费用 - 但至少我可以说出技术上可行的和不可行的 - 这实际上可能为您节省大量时间,尝试完成不可能的事情。

关于firebase - 如何使用 FireBase Auth UI 从 Android 应用程序使用 Google Drive?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59869840/

相关文章:

reactjs - 如何将 firebase 与 React 功能组件同步?

ios - 当应用程序在后台运行时,Firebase通知[IOS]不起作用

ios - Firebase 忘记密码 - 如何识别用户是使用电子邮件还是 Facebook 登录?

android - 从 Google Drive URI 获取路径

android - 如何在 Google Drive Android API 中获取已创建文件夹的 DriveId

ios - 用于云 Firestore 数据库触发器的 Stripe Connect 重定向 uri

firebase - 在 Flutter 中使用 Firestore 时,使用 Future 比使用 Steam 有什么优势吗?

java - 使用 Firebase 实时数据库在重新启动时重置警报

javascript - 成功更改密码后 Firebase 重定向到网页

android - 获取 Google Drive API Android 的资源 ID