如何使用 FireBase Auth UI 从 Android 应用程序使用 Google 云端硬盘?
How to use GoogleDrive from Android app using FireBase Auth UI?
我已经在我的应用程序中实施了 Firebase 身份验证,使用 Google 提供程序和“https://www.googleapis.com/auth/drive.appdata”范围,因此我的应用程序可以访问其在 Google Drive[=14 中的应用程序文件夹=]
这部分工作正常,身份验证完成后我检索了 FireBaseUser
我现在想做的是访问我在 Google 驱动器上的应用程序存储,但我不知道如何使用当前身份验证的结果来执行此操作
但这不适用于 Android。
主要问题是如何创建 Credentials 对象
您是否知道如何初始化 Drive.Builder 实例以便我可以 write/read 到应用程序 Google Drive 文件夹?
谢谢
这不能直接完成,因为 Firebase 和 Google 登录名不同,即使使用 Google 帐户登录到 Firebase 也是如此。在 Android 上,同时只有 "last logged in Google account" 可用于 用户的 驱动器(设备上的那个,与 Firebase 身份验证无关,其中 Google 只能用作 "Authentication Provider").
所以一般有两种选择供您选择:
授予 GCP 服务帐户对 Drive API and use Cloud Functions 的访问权限。
而是使用 Cloud Storage,它在 Firebase 生态系统中,类似于 Drive。
我还可以想到一种组合解决方案,用户可以使用云存储(与 Firebase 身份验证一起使用)并拥有使用服务帐户的云功能,例如。将上传的文件复制或移动到文件夹 您的 驱动器。
关于那个(显然是服务器端的)Java 示例,credentials.json
清楚地暗示了一个服务帐户...而这正是您可以从中获取此文件的地方。然而,对于 Android 来说,这是非常无用的 - 因为它具有重大的安全隐患,将服务帐户凭据打包在一个易于反编译的包中并将其分发到 WWW 上(给每个人)。 Google Play 商店可能不允许您发布甚至上传该内容,因为存在安全检查。在最好的情况下,您只能将该代码部署为 App Engine 模块,而不是 Android 模块。
很抱歉打破了您的幻想,并且无法为 500 个虚构的互联网点提供现成的解决方案,这些点无需支付任何费用 - 但至少我可以说出技术上可行的和不可行的 - 这有效地可能会为您节省大量时间,努力完成不可能的事情。
我已经在我的应用程序中实施了 Firebase 身份验证,使用 Google 提供程序和“https://www.googleapis.com/auth/drive.appdata”范围,因此我的应用程序可以访问其在 Google Drive[=14 中的应用程序文件夹=]
这部分工作正常,身份验证完成后我检索了 FireBaseUser 我现在想做的是访问我在 Google 驱动器上的应用程序存储,但我不知道如何使用当前身份验证的结果来执行此操作
但这不适用于 Android。 主要问题是如何创建 Credentials 对象 您是否知道如何初始化 Drive.Builder 实例以便我可以 write/read 到应用程序 Google Drive 文件夹?
谢谢
这不能直接完成,因为 Firebase 和 Google 登录名不同,即使使用 Google 帐户登录到 Firebase 也是如此。在 Android 上,同时只有 "last logged in Google account" 可用于 用户的 驱动器(设备上的那个,与 Firebase 身份验证无关,其中 Google 只能用作 "Authentication Provider").
所以一般有两种选择供您选择:
授予 GCP 服务帐户对 Drive API and use Cloud Functions 的访问权限。
而是使用 Cloud Storage,它在 Firebase 生态系统中,类似于 Drive。
我还可以想到一种组合解决方案,用户可以使用云存储(与 Firebase 身份验证一起使用)并拥有使用服务帐户的云功能,例如。将上传的文件复制或移动到文件夹 您的 驱动器。
关于那个(显然是服务器端的)Java 示例,credentials.json
清楚地暗示了一个服务帐户...而这正是您可以从中获取此文件的地方。然而,对于 Android 来说,这是非常无用的 - 因为它具有重大的安全隐患,将服务帐户凭据打包在一个易于反编译的包中并将其分发到 WWW 上(给每个人)。 Google Play 商店可能不允许您发布甚至上传该内容,因为存在安全检查。在最好的情况下,您只能将该代码部署为 App Engine 模块,而不是 Android 模块。
很抱歉打破了您的幻想,并且无法为 500 个虚构的互联网点提供现成的解决方案,这些点无需支付任何费用 - 但至少我可以说出技术上可行的和不可行的 - 这有效地可能会为您节省大量时间,努力完成不可能的事情。