【发布时间】:2021-06-03 12:58:47
【问题描述】:
嘿,我正在尝试在 Flutter 中使用 Firebase Auth verifyPhoneNumber。
我经常将onTap 中的msg 函数设为null。我尝试在 registerToFb 函数中声明一个变量,但我无法更新它的值。我该如何解决?
以下是我调用 firebaseAuth.verifyPhoneNymber() 方法的函数。
onTap: () async {
setState(() => isLoading = true);
String msg = await _auth.registerToFb(
"+91$truephoneNumber", context);
print(msg);
},
以下是我定义我的功能的地方。
class AuthenticationService {
final FirebaseAuth _firebaseAuth;
AuthenticationService(this._firebaseAuth);
Future registerToFb(String phoneNumber, BuildContext context) async {
String result = " ";
await _firebaseAuth.verifyPhoneNumber(
phoneNumber: phoneNumber,
timeout: const Duration(seconds: 30),
verificationCompleted: (PhoneAuthCredential credential) async {
UserCredential authresult =
await _firebaseAuth.signInWithCredential(credential);
User user = authresult.user;
_getUserFromFirebase(user);
result = "signedUp";
},
verificationFailed: (FirebaseAuthException e) {
String error = e.code == 'invalid-phone-number'
? "Invalid number. Enter again."
: "Can Not Login Now. Please try again.";
result = error;
},
codeSent: (String verificationId, int resendToken) {
result = "verified";
},
codeAutoRetrievalTimeout: (String verificationId) {},
);
}
return result;
}
请帮帮我。谢谢
【问题讨论】:
-
我想你也想返回错误,这样可以解决吗?
-
你没有从
registerToFb返回任何东西。您所拥有的return位指的是闭包函数,而不是registerToFb函数。 -
@lrsvmb 感谢您的建议并对错误表示歉意。我忘了在那里使用return。但即使有`return error`它也不起作用。
-
Abion47 我尝试从函数返回错误值,但仍然无法正常工作
标签: flutter dart firebase-authentication