firebase 未找到GoogleService-Info.plist文件,并且未以编程方式提供clientId

vtwuwzda  于 2022-11-17  发布在  Go
关注(0)|答案(3)|浏览(203)

我尝试使用fluttefire命令行工具将firebase添加到我的flutter项目中。我正在使用firebase的Google身份验证服务并调用SignIn函数,它给出了以下错误。ios文件夹中有GoogleService-Info.plist文件。

Unhandled Exception: PlatformException(missing-config, GoogleService-Info.plist file not found and clientId was not provided programmatically., null, null)
    #0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:607:7)
    #1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:167:18)
    <asynchronous suspension>
    #2      GoogleSignInPlatform.initWithParams (package:google_sign_in_platform_interface/google_sign_in_platform_interface.dart:98:5)
    <asynchronous suspension>
    #3      GoogleSignIn._callMethod (package:google_sign_in/google_sign_in.dart:267:5)
    <asynchronous suspension>
    #4      GoogleSignIn.signIn.isCanceled (package:google_sign_in/google_sign_in.dart:402:5)
roejwanj

roejwanj1#

FlutterFire命令行工具会生成一个Dart文件,因此您不需要GoogleService-Info.plist。虽然使用命令行工具插入GoogleService-Info.plist是多余的。但是,您还必须在初始化时指定生成的选项:

Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform)

使用DefaultFirebaseOptions是使用Firebase和Flutter的新方法,手动插入配置文件是旧方法。
编辑:我不明白这个问题是关于GoogleSignIn插件的(我没有真正阅读堆栈跟踪😅)。在这种情况下,错误与错误消息中的错误完全相同。您没有指定客户端ID:

GoogleSignIn(clientId: DefaultFirebaseOptions.currentPlatform.iosClientId).signIn()

EDIT:是的,新版本的flutterfire也会生成相应的文件,如GoogleService-Info.plist,但您不再需要这些文件,因为参数clientId存在于GoogleSignIn插件中。

vxbzzdmp

vxbzzdmp2#

有人在github上发布了这个问题。https://github.com/flutter/flutter/issues/96248
众人说:
google_sign_in插件目前不支持dart的初始化,同时,你需要手动安装。
2022年8月31日,我仍然面临同样的问题

8dtrkrch

8dtrkrch3#

将GoogleService-Info.plist文件移到Runner文件夹中,我就解决了这个问题。

相关问题