将 Firebase Auth 模拟器与 Flutter 结合使用时出现错误

问题描述 投票:0回答:1

我在尝试通过 Firebase 模拟器使用 Google 登录时遇到此错误

[错误:flutter/runtime/dart_vm_initializer.cc(41)] 未处理的异常:[firebase_auth/unknown] 发生内部错误。 [ Auth 模拟器仅支持使用 id_token 而不是 access_token 登录 google.com。请更新您的代码以使用 id_token。

我的登录代码几乎是从 Firebase 文档中逐字复制的

import 'package:firebase_auth/firebase_auth.dart';
import 'package:google_sign_in/google_sign_in.dart';

Future<UserCredential> signInWithGoogle() async {
  // Trigger the authentication flow
  final GoogleSignInAccount? googleUser = await GoogleSignIn().signIn();

  // Obtain the auth details from the request
  final GoogleSignInAuthentication? googleAuth = await googleUser?.authentication;

  // Create a new credential
  final credential = GoogleAuthProvider.credential(
    accessToken: googleAuth?.accessToken,
    idToken: googleAuth?.idToken,
  );

  // Once signed in, return the UserCredential
  return await FirebaseAuth.instance.signInWithCredential(credential);
}

这仅在连接到模拟器套件时显示,而不是在使用真实的 Firebase 实例时显示。

有解决方法或修复吗?

Flutter Doctor 输出

[✓] Flutter (Channel stable, 3.16.8, on Ubuntu 22.04.3 LTS 6.5.0-21-generic, locale en_US.UTF-8)
    • Flutter version 3.16.8 on channel stable at /home/starleaf1/snap/flutter/common/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 67457e669f (6 weeks ago), 2024-01-16 16:22:29 -0800
    • Engine revision 6e2ea58a5c
    • Dart version 3.2.5
    • DevTools version 2.28.5

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /home/starleaf1/Android/Sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: /home/starleaf1/android-studio/jbr/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • clang version 10.0.0-4ubuntu1
    • cmake version 3.16.3
    • ninja version 1.10.0
    • pkg-config version 0.29.1

[✓] Android Studio (version 2023.1)
    • Android Studio at /home/starleaf1/android-studio
    • Flutter plugin version 78.0.1
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • android-studio-dir = /home/starleaf1/android-studio
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-17.0.7b1000.6-10550314)

[✓] VS Code (version unknown)
    • VS Code at /snap/code/current
    • Flutter extension can be installed from:
      🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
    ✗ Unable to determine VS Code version.

[✓] Connected device (3 available)
    • sdk gphone64 x86 64 (mobile) • emulator-5554 • android-x64    • Android 14 (API 34) (emulator)
    • Linux (desktop)              • linux         • linux-x64      • Ubuntu 22.04.3 LTS 6.5.0-21-generic
    • Chrome (web)                 • chrome        • web-javascript • Google Chrome 121.0.6167.184

[✓] Network resources
    • All expected network resources are available.

• No issues found!

Firebase 集成是使用 FlutterFire CLI 初始化的

android flutter firebase-authentication firebase-tools
1个回答
0
投票
  1. 首先检查 android/app/google-services.json 中的 json 文件

  1. 在 Firebase 帐户中清除 Google 签名是否已禁用?

  1. 最后更改 Firebase 控制台中的 ssh

试试这个-

./gradlew signingReport 

确保在 android 目录上运行特定命令

© www.soinside.com 2019 - 2024. All rights reserved.