[英]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.