簡體   English   中英

Firebase.initializeApp名稱參數在移動端需要,web不需要

[英]Firebase.initializeApp name parameter is needed in mobile but not in web

我有一個 Flutter 應用程序,適用於 Android、iOS 和 web。我在 main 中使用 Firebase,如下所示:

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);

  try {
    await Firebase.initializeApp(
      // name: 'name',
      options: DefaultFirebaseOptions.currentPlatform,
    );

    runApp(
      MultiProvider(
        providers: [
          // providers
        ],
        child: const MyApp(),
      ),
    );
  } catch (e) {
    print(e.toString());
  }
}

設置參數name后,Android和iOS都運行,web不運行。 window 已創建但保持白色,控制台顯示:

[core/no-options] Firebase: Need to provide options, when not being deployed to hosting via source..

當我注釋相同的參數時,它在 web 中運行,但我在 Android 和 iOS 中遇到了同樣的問題。它說:

flutter: [core/duplicate-app] A Firebase App named "[DEFAULT]" already exists

我怎樣才能讓它同時適用於兩者?

您可以使用kIsWeb web僅在不是web時設置name

if(kIsWeb){
 await Firebase.initializeApp(
   await Firebase.initializeApp(
      options: DefaultFirebaseOptions.currentPlatform,
    );
 );
}else{
    await Firebase.initializeApp(
      name: 'name',
      options: DefaultFirebaseOptions.currentPlatform,
    );
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM