【发布时间】:2021-05-23 16:34:26
【问题描述】:
我正在自学 Flutter,我正在一个小项目中使用 Firebase。我正处于登录和注册阶段,所以我需要使用一个名为 firebase_auth: ^ 0.20.0 + 1 的插件。 但是,我的代码中出现了一个点,我不知道是什么原因导致的。 当我创建用户时,我在 .createUserWithEmailAndPassword 中指定了一个电子邮件和一个密码,如果它工作它应该返回一个表明创建成功的函数,没有错误日志,因为我没有完成代码并执行了这一步,但是错误在我在这个函数中使用的语法中,它似乎不符合firebase的语法,我一定做错了什么。他说这些行是错误的 .then ((user) {firebaseUser = user;
import 'package:firebase_auth/firebase_auth.dart';
import 'package:scoped_model/scoped_model.dart';
import 'dart:async';
import 'package:flutter/material.dart';
class UserModel extends Model {
//usuario atual
FirebaseAuth _auth = FirebaseAuth.instance;
FirebaseUser firebaseUser;
Map<String, dynamic> userData = Map();
bool isLoading = false;
void signUp(Map<String, dynamic> userData, String pass, VoidCallback onSucess,
VoidCallback onFail) {
isLoading = true;
notifyListeners();
_auth
.createUserWithEmailAndPassword(
email: userData["email"], password: pass)
.then((user) async{
firebaseUser = user;
onSucess();
isLoading = false;
notifyListeners();
}).catchError((e) {
onFail();
isLoading = false;
notifyListeners();
});
}
void signIn() async {
isLoading = true;
notifyListeners();
await Future.delayed(Duration(seconds: 3));
isLoading = false;
notifyListeners();
}
void recoverPass() {}
//bool isLoggedIn() {}
}
class FirebaseUser {}
【问题讨论】:
-
虽然
.then可以完成这项工作,但最好在 try catch 块中使用 async 和 await 以避免回调地狱
标签: flutter firebase-authentication