Как использовать GoogleDrive из приложения Android с помощью FireBase Auth UI? - PullRequest
2 голосов
/ 23 января 2020

Я внедрил Аутентификацию Firebase в своем приложении, используя провайдера Google и область действия "https://www.googleapis.com/auth/drive.appdata", чтобы мое приложение могло получить доступ к своей папке приложения на Google Диске

Эта часть работает хорошо, и я получаю FireBaseUser после завершения аутентификации. Теперь я хочу получить доступ к хранилищу моего приложения на Google Диске, но я не знаю, как это сделать, используя результаты текущей аутентификации

I пытался следовать этому: https://github.com/gsuitedevs/java-samples/blob/master/drive/quickstart/src/main/java/DriveQuickstart.java

Но это не работает на Android. Основная проблема заключается в том, как создать объект Credentials. Есть ли у вас какие-либо идеи о том, как инициализировать экземпляр Drive.Builder, чтобы я мог писать / читать в папке приложения Google Drive?

Спасибо

1 Ответ

3 голосов
/ 29 января 2020

Это нельзя сделать напрямую, поскольку логин Firebase и Google не совпадают, даже если вы вошли в Firebase с помощью аккаунта Google. На Android один пока что имеет только «последний зарегистрированный аккаунт Google», доступный для диска пользователя (тот, что на устройстве, который не имеет ничего общего с Аутентификацией Firebase, где Google может использоваться только как «Поставщик аутентификации»).

Таким образом, вам обычно доступны две опции:

Я мог бы также подумать о комбинированном подходе к решению, при котором пользователи будут использовать облачное хранилище (вместе с аутентификацией Firebase) и облачной функции, которая использует учетную запись службы, которая, например, , копирует или перемещает загруженные файлы в папку вашего диска.

Что касается (очевидно серверной) Java примера, credentials.json явно намекает на служебную учетную запись ... и именно здесь вы можете получить этот файл. Однако для Android это довольно бесполезно - поскольку оно имеет серьезные последствия для безопасности: упаковывать учетные данные учетной записи службы в простой для декомпиляции пакет и распространять его в WWW (для всех). Google Play Store, скорее всего, не позволит вам опубликовать sh или даже загрузить его, потому что существуют проверки безопасности. В лучшем случае вы можете развернуть этот код только как модуль App Engine, но не как модуль Android.

Извините, что уничтожил ваши заблуждения и не смог предоставить готовое решение для 500 мнимых inte rnet баллов, которые ничего не платят - но, по крайней мере, я могу сказать, что технически возможно, а что нет - что может эффективно сэкономить вам много времени, пытаясь достичь sh невозможного.

...