web-dev-qa-db-fra.com

Opération non prise en charge: Platform._operatingSystem

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.

4
rvr93

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;
}
1
G.Zexin

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.

1
Shashwat Aditya