Mon code de flottement ne fonctionne pas sur le Web.
J'ai trouvé que "bool kisweb" peut être utilisé pour détecter la plate-forme. Mais mon code échoue à "FirebaseAuth.instance". Est-ce à dire que je ne peux pas utiliser Firebaseauth sur le web car cela pourrait dépendre de Dart: io?
Lancement de lib\main.Dart sur Chrome en mode débogage ... Écoute du service de débogage sur ws: //127.0.0.1: 54007/NghsYaNRLKE = compilé pour le Web ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═════════════════════════════════════════════════ ══════════ L'erreur UnsupportedError suivante a été générée lors de la création de MultiProvider: Opération non prise en charge: Platform._operatingSystem Le widget à l'origine des erreurs était: MultiProvider org-dartlang-app: ///packages/My_App/main.Dart: 30:10 Quand l'exception a été levée, c'était la pile: package: build_web_compilers/src/dev_compiler/Dart_sdk.js 3996: 11
throw_ package: build_web_compilers/src/dev_compiler/Dart_sdk.js 57810: 17 _operatingSystem package: build_web_compilers/src/dev_compiler/Dart_sdk.js 57859: 27 get operatingSystem package: build_web scomp_s_comp 27 get _operatingSystem package: build_web_compilers/src/dev_compiler/Dart_sdk.js 5020: 17 get package: build_web_compilers/src/dev_compiler/Dart_sdk.js 57796: 26 get isIOS package: build_web_compilers_somps_s : firebase_core/src% 5Cfirebase_app.Dart 15:16
get defaultAppName package: build_web_compilers/src/dev_compiler/Dart_sdk.js 5020: 17 get package: firebase_core/src% 5Cfirebase_app.Dart 51:57 get instance package: build_web_compilers/src/dev_compiler/Dart_sj20s obtenir le package: firebase_auth/src% 5Cfirebase_auth.Dart 25:67
get package d'instance: build_web_compilers/src/dev_compiler/Dart_sdk.js 5020: 17 get internalCallback ═══════════════════════════ ══════════════════════════════════════════════════ ═══════════════════════ Quitté
S'il te plaît, aide-moi à résoudre ce problème.
Vous pouvez utiliser un try-catch
bloquer pour empêcher l'exception de rompre le flux:
bool kisweb;
try{
if(Platform.isAndroid||Platform.isIOS) {
kisweb=false;
} else {
kisweb=true;
}
} catch(e){
kisweb=true;
}
Pour moi, passer au canal de développement a fonctionné en utilisant flutter channel dev
Le support Web est désormais disponible pour la plupart des plugins Firebase.