GoogleService-Info.plist 文件是通过 将文件添加到“Runner”选项添加的。所以,它在 Runner 目录中。
我已经检查了很多堆栈溢出答案,但无法找出问题所在。
我还重新检查了 GoogleService-Info.plist 中的 GOOGLE_APP_ID
GoogleService-Info.plist配置没有问题。
我还将下面的 CFBundleURLTypes 属性添加到 [my_project]/ios/Runner/Info.plist 文件中。
CFBundleURLTypes - CFBundleTypeRole - 编辑器 - CFBundleURLSchemes - com.googleusercontent.apps.861823949799-vc35cprkp249096uujjn0vvnmcvjppkn
问题日志:
2020-07-08 09:57:50.535551+0545 Sefyl [63114:5254473] flutter: Observatory listening on http://127.0.0.1:53595/jh2o62kCyXk=/
2020-07-08 09:57:50.815919+0545 Sefyl [63114:5254485] 6.25.0 - [Firebase/Analytics][I-ACS023007] Analytics v.60501000 started
2020-07-08 09:57:50.851101+0545 Sefyl [63114:5254418] 6.25.0 - [Firebase/Analytics][I-ACS023008] To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled
2020-07-08 09:57:50.851571+0545 Sefyl [63114:5254418] 6.25.0 - [Firebase/Analytics][I-ACS031025] Analytics screen reporting is enabled. Call +[FIRAnalytics setScreenName:setScreenClass:] to set the screen name or override the default screen class name. To disable screen reporting, set the flag FirebaseScreenReportingEnabled to NO (boolean) in the Info.plist
2020-07-08 09:57:51.366223+0545 Sefyl [63114:5254423] 6.25.0 - [Firebase/Analytics][I-ACS800023] No pending snapshot to activate. SDK name: app_measurement
2020-07-08 09:57:51.500886+0545 Sefyl [63114:5254426] 6.25.0 - [Firebase/Core][I-COR000004] App with name test does not exist.
2020-07-08 09:57:51.508053+0545 Sefyl [63114:5254426] 6.25.0 - [Firebase/Core][I-COR000009] The GOOGLE_APP_ID either in the plist file 'GoogleService-Info.plist' or the one set in the customized options is invalid. If you are using the plist file, use the iOS version of bundle identifier to download the file, and do not manually edit the GOOGLE_APP_ID. You may change your app's bundle identifier to 'com.sefyl.goflutter'. Or you can download a new configuration file that matches your bundle identifier from https://console.firebase.google.com/ and replace the current one.
2020-07-08 09:57:51.581320+0545 Sefyl [63114:5254055] *** Terminating app due to uncaught exception 'com.firebase.core', reason: 'Configuration fails. It may be caused by an invalid GOOGLE_APP_ID in GoogleService-Info.plist or set in the customized options.'
*** First throw call stack:
.....
...
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
终于解决了!
简单地,根据其平台配置 GoogleService-Info.plist 和 GoogleService.json:
// config acc to platform
final FirebaseOptions firebaseOptions = (Platform.isIOS || Platform.isMacOS)
? const FirebaseOptions(
googleAppID: '1:926446789922:ios:e16***tecf870f0717b',
gcmSenderID: '2564624562546',
apiKey: 'AIzaSyChk3KEG7QYrs4kQfg***erwrfCAdgg',
projectID: 'project-23ff',
storageBucket: 'gs://project-23ff.appspot.com',
databaseURL: 'https://project-23ff.firebaseio.com/',
)
: const FirebaseOptions(
googleAppID: '1:926446789922:android:056***f0717b',
gcmSenderID: '2564624562546',
apiKey: 'AIzaSyDBq2tJ82wO0RKzfsgu***e6uh3Ko',
projectID: 'project-23ff',
storageBucket: 'gs://project-23ff.appspot.com',
databaseURL: 'https://project-23ff.firebaseio.com/',
);
final FirebaseApp app =
await FirebaseApp.configure(name: 'test', options: firebaseOptions);
更新:
首先您需要添加您的 google-info.plist 到 xcode 中,
然后
main() async{
await Firebase.initializeApp(
name: 'RamadanApp',
options: (Platform.isIOS || Platform.isMacOS)
? const FirebaseOptions(
apiKey: "CHECK VALUE IN INFO.PLIST",
appId: "CHECK VALUE IN INFO.PLIST",
messagingSenderId: "CHECK VALUE IN INFO.PLIST",
projectId: "CHECK VALUE IN INFO.PLIST")
: const FirebaseOptions(
apiKey:
"CHECK VALUE IN FIREBASE CONSOLE",
appId: "CHECK VALUE IN FIREBASE CONSOLE",
messagingSenderId: "CHECK VALUE IN FIREBASE CONSOLE"",
projectId: "CHECK VALUE IN FIREBASE CONSOLE"),
);
}
我有同样的错误,我的文件 GoogleService-Info.plist 和 GoogleService.json 都很好。 但在我的 firebase_options.dart 中,我有另一个平台的值(Web 而不是 iOS)
import 'package:firebase_core/firebase_core.dart';
class DefaultFirebaseOptions {
static FirebaseOptions get currentPlatform {
return const FirebaseOptions(
apiKey: "YOUR_API_KEY",
authDomain: "YOUR_APP.firebaseapp.com",
databaseURL: "YOUR_DATABASE_URL",
projectId: "YOUR_PROJECT_ID",
storageBucket: Y"OUR_STORAGE_BUCKET",
messagingSenderId: "YOUR_SENDER_ID,"
appId: "YOUR_APP_ID";
}
}
检查您的 appId,如果您在 ios 中工作,它看起来像这样 :
appId:“1:123456789012:ios:abcdef1234567890abcdef”
在网络上时,例如它看起来像这样
appId:“1:123456789012:网络:abcdef1234567890abcdef”
平台在id中标明。