7
votes

MissingPluginException (aucune implémentation trouvée pour la méthode signInWithCredential sur le canal plugins.flutter.io/firebase_auth)

J'ai ce problème lors de la connexion avec Firebase, je ne sais pas comment le résoudre. Veuillez aider, merci.

le code de ma fonction de connexion est comme:

[VERBOSE-2:ui_dart_state.cc(148)] Unhandled Exception: MissingPluginException(No implementation found for method createUserWithEmailAndPassword on channel plugins.flutter.io/firebase_auth)
#0      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:300:7)
<asynchronous suspension>
#1      FirebaseAuth.createUserWithEmailAndPassword (package:firebase_auth/src/firebase_auth.dart:108:54)
<asynchronous suspension>
#2      _LoginPageState.signUp (package:pdc/Pages/Setup/signIn.dart:78:55)
<asynchronous suspension>
#3      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:511:14)
#4      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:566:30)
#5      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:166:24)
#6      TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:240:9)
#7      TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:177:9)
#8      PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:436:9)

}

et mon docteur flutter est comme:

Future<void> signUp() async{
        if(_formKey.currentState.validate()){
      _formKey.currentState.save();
      FirebaseUser user = await FirebaseAuth.instance.createUserWithEmailAndPassword(email: _email, password: _password);
      Navigator.push(context, MaterialPageRoute(builder: (context)=> Home(user: user)));
    }

  }

la sortie de l'erreur est comme:

 [VERBOSE-2:ui_dart_state.cc(148)] Unhandled Exception: 
    MissingPluginException(No implementation found for method  signInWithCredential on channel plugins.flutter.io/firebase_auth)
0      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:300:7)
<asynchronous suspension>
1      FirebaseAuth.signInWithCredential (package:firebase_auth/src/firebase_auth.dart:278:54)
<asynchronous suspension>
2      FirebaseAuth.signInWithEmailAndPassword (package:firebase_auth/src/firebase_auth.dart:249:12)
3      _LoginPageState.signIn (package:pdc/Pages/Setup/signIn.dart:62:57)
<asynchronous suspension>
4      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:511:14)
5      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:566:30)
6      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:166:24)
7      TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:240:9)
8      TapGestureR<…>

Cela se produit à la fois sur mon appareil et sur le simulateur IOS, et je ne l'ai pas essayé sur Android. J'ai déjà essayé le flutter clean, démarrer un nouveau projet et mettre à niveau les cocoaPods. Mais aucun d'entre eux n'est utile à mon cas. Merci pour l'aide.

question de mise à jour

Il semble que chaque fois que j'essaierai de faire quelque chose avec Firebase, cela me posera ce genre de question. J'ai écrit un code pour m'inscrire comme ceci:

[✓] Flutter (Channel master, v1.4.20-pre.2, on Mac OS X 10.14.4 18E226, locale
zh-Hans-CN)

[✓] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[✓] iOS toolchain - develop for iOS devices (Xcode 10.2)
[!] Android Studio (version 3.3)
✗ Flutter plugin not installed; this adds Flutter specific functionality.
✗ Dart plugin not installed; this adds Dart specific functionality.
[✓] IntelliJ IDEA Ultimate Edition (version 2018.1.8)
[✓] VS Code (version 1.33.1)
[✓] Connected device (1 available)

La sortie de mon code est

Future<void> signIn() async{
final formState = _formKey.currentState;
if(formState.validate()){
  //TODO login to firebase
  formState.save();
  try{
    FirebaseUser user = await FirebaseAuth.instance.signInWithEmailAndPassword(email: _email, password: _password);
    Navigator.push(context, MaterialPageRoute(builder: (context)=> Home(user: user)));
  }catch(e){
    print(e.details);
  }

}

Et je suis sûr que j'ai terminé la configuration de Firebase et connecté avec succès l'application Flutter avec Firebase.


1 commentaires

la solution dans mon cas est: Fichier -> Invalidate Caches / Restart ... -> Invalidate and Restart


3 Réponses :


1
votes

Je pense que vous devez exécuter les packages get & upgrade. Si vous utilisez Android Studio, vous pouvez simplement aller dans votre fichier pubspeck.yaml et deux boutons apparaîtront dans le coin supérieur droit ou vous pouvez simplement utiliser votre terminal.

Utilisation de packages.


1 commentaires

Merci pour vos conseils, je pensais avoir essayé cette solution, et je viens de les exécuter à nouveau, mais cela n'a pas fonctionné pour moi, j'ai toujours la même erreur.



3
votes

J'ai eu beaucoup de mal à faire fonctionner Firebase. Je pense que cela devrait être VRAIMENT facile, car Flutter et Firebase sont des produits Google. Quoi qu'il en soit, j'ai dû utiliser ce code pour le fichier AppDelegate.m sous iOS:

#include "AppDelegate.h"
#include "GeneratedPluginRegistrant.h"

@import UIKit;
@import Firebase;

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [FIRApp configure];
  [GeneratedPluginRegistrant registerWithRegistry:self];
  return [super application:application didFinishLaunchingWithOptions:launchOptions]; // YES;
}
@end

Avez-vous déjà essayé quelque chose comme ça?


1 commentaires

Des suggestions pour AppDelegate.swift?



0
votes

J'ai eu le même problème et je l'ai résolu en mettant à jour le package firebase_auth.


1 commentaires

si vous jour la version de votre package sera plus utile.