Ошибка: NoSuchMethodError: класс ‘_AssertionError’ не имеет ‘кода’ средства получения экземпляра

#firebase #flutter #firebase-authentication

#firebase #сбой #firebase-аутентификация

Вопрос:

Когда я пытаюсь войти в систему с помощью firebaseauth, я продолжаю получать сообщение об ошибке

Изображение ошибки

Я следил за онлайн-руководством о том, как это сделать. Но, похоже, у меня это все еще не работает.

это мой код:

 import 'package:firebase_auth/firebase_auth.dart';
import 'package:google_sign_in/google_sign_in.dart';

bool isAuth = false;

FirebaseAuth _auth = FirebaseAuth.instance;
final googleSignIn = GoogleSignIn();

Future<bool> signUp({String email, String password}) async {
  try {
    User user = (await _auth.createUserWithEmailAndPassword(email: email, password: password)).user;
    return Future.value(true);
  } catch (e) {
    switch (e.code) {
      case "email-already-in-use":
        print("email-already-in-use");
    }
  }
}

Future<bool> signIn({String email, String password}) async {
  try {
    User user = (await _auth.signInWithEmailAndPassword(email: email, password: password)).user;
    return Future.value(true);
  } catch (e) {
    switch (e.code) {
      case "user-not-found":
        print("user-not-found");
        break;
    }
  }
}

Future<bool> signOutUser() async {
  User user = await _auth.currentUser;
  if (user.providerData[1].providerId == "google.com") {
    await googleSignIn.signOut();
  }
  _auth.signOut();
  return Future.value(true);
}
  

Ответ №1:

Определите свой блок try catch следующим образом :

 try {
    User user = (await _auth.createUserWithEmailAndPassword(email: email, password: password)).user;
    return Future.value(true);
  } on FirebaseAuthException catch (e) {
    switch (e.code) {
      case "email-already-in-use":
        print("email-already-in-use");
return null;
    }
  }
}
  

И

   try {
    User user = (await _auth.signInWithEmailAndPassword(email: email, password: password)).user;
    return Future.value(true);
  }on FirebaseAuthException catch (e) {
    switch (e.code) {
      case "user-not-found":
        print("user-not-found");
        break;
return null;
    }
  }
  

Комментарии:

1. вы нашли это полезным?

2. да, это было спасибо @gladiator, но в процессе я попытался сделать свой код более эффективным, и теперь я получаю ошибку с учетными данными для входа в Google 😂

3. Вы можете проголосовать / принять, если мой ответ ответил на ваш вопрос или вы нашли его полезным