Ошибка при входе в Google с использованием идентификатора клиента в приложении Flutter для AndroidAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Ошибка при входе в Google с использованием идентификатора клиента в приложении Flutter для Android

Сообщение Anonymous »

У меня возникла проблема со входом в Google в моем приложении Flutter для Android. В частности, у меня возникает ошибка PlatformException при использовании clientId для входа в Google. Ниже приведены подробные сведения о проблеме и соответствующий код:

Код:

Код: Выделить всё

uploadToGoogleDrive() async {
try {
final GoogleSignIn googleSignIn = GoogleSignIn(
clientId: clientId, scopes: [ga.DriveApi.driveFileScope]);

final GoogleSignInAccount? googleUser = await googleSignIn.signIn();

if (googleUser != null) {
final auth.AuthClient? client =
await googleSignIn.authenticatedClient();

final dir = await getApplicationDocumentsDirectory();

fa.File file = fa.File("${dir.path}/db_backup.isar");
await isar.copyToFile("${dir.path}/db_backup.isar");

ga.File fileToUpload = ga.File();
DateTime now = DateTime.now();

fileToUpload.name =
"${now.toIso8601String()}_${p.basename(file.absolute.path)}";

final drive = ga.DriveApi(client!);

ga.File x = await drive.files.create(fileToUpload,
uploadMedia: ga.Media(file.openRead(), file.lengthSync()));

if (x.id != null) {
print(x.id!); // this refers to the id of the file created in Google Drive
setState(() {
fileId = x.id!; //we save it in a variable called fileId
});
}

if (file.existsSync()) {
file.deleteSync();
}
} else {
if (context.mounted) {
ScaffoldMessenger.of(context)
.showSnackBar(const SnackBar(content: Text("Failed to sign in")));
}
}
} catch (e) {
if (context.mounted) {
ScaffoldMessenger.of(context)
.showSnackBar(SnackBar(content: Text(e.toString())));
}
}
}

Проблема:

При использовании clientId я получаю следующую ошибку:

Код: Выделить всё

ERROR: PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null, null)
Однако процесс входа работает корректно и без указания clientId. Я уверен, что мой clientId верен, и я настроил ключ SHA-1 в проекте Google Cloud. Мой экран согласия OAuth2 также настроен по мере необходимости.

Зависимости:

Код: Выделить всё

dependencies:
googleapis: ^13.2.0
googleapis_auth: ^1.6.0
google_sign_in: ^6.2.1
extension_google_sign_in_as_googleapis_auth: ^2.0.12

Что я пробовал:

  • Проверил правильность идентификатора клиента.
  • Подтверждено, что ключ SHA-1 правильно добавлен в проект Google Cloud. Без SHA-1 знак Google не всплывает.
  • Убедился, что экран согласия OAuth2 настроен правильно.

Вопрос:

Что может быть причиной этой проблемы при использовании clientId? Как я могу устранить ошибку PlatformException и успешно использовать clientId для входа в Google в моем приложении Flutter?
Спасибо за помощь!

Подробнее здесь: https://stackoverflow.com/questions/788 ... ndroid-app
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»