【问题标题】:How to use GoogleDrive from Android app using FireBase Auth UI?如何使用 FireBase Auth UI 从 Android 应用程序使用 Google Drive?
【发布时间】:2020-01-22 23:52:09
【问题描述】:

我已在我的应用中使用 Google Provider 和“https://www.googleapis.com/auth/drive.appdata”范围实现了 Firebase 身份验证,因此我的应用可以访问其在 Google Drive 中的应用文件夹

这部分工作正常,我在身份验证完成后检索 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 firebase-authentication google-drive-android-api


    【解决方案1】:

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

    因此,您通常有两种选择:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多