我正在尝试创建一个flutter应用程序,在创建一个用户的电子邮件/密码后,他们被保存在firebase,然后用户输入他的电话号码,发送OTP和用户在验证后登录。我的问题是,当这两个步骤都完成时,firebase正在创建两个单独的帐户,一个是电子邮件帐户,另一个是电话帐户。请告诉我如何创建一个既有电子邮件/密码又有电话的单一帐户。我还想同时使用电子邮件/密码或电话登录。或任何其他方式创建具有电子邮件/密码和电话的用户。
void _verifyPhoneNumber() async {
if (mounted)
setState(() {
_message = '';
});
final PhoneVerificationCompleted verificationCompleted =
(AuthCredential phoneAuthCredential) {
_firebaseUser.updatePhoneNumberCredential(phoneAuthCredential);
if (mounted)
setState(() {
_message = 'Received phone auth credential: $phoneAuthCredential';
});
};
final PhoneVerificationFailed verificationFailed =
(AuthException authException) {
showToast(authException.message,
gravity: Toast.TOP, duration: Toast.LENGTH_LONG);
if (mounted)
setState(() {
_isLoading = false;
_message =
'Phone number verification failed. Code: ${authException.code}. Message: ${authException.message}';
});
};
final PhoneCodeSent codeSent =
(String verificationId, [int forceResendingToken]) async {
print('Please check your phone for the verification code.');
_verificationId = verificationId;
setState(() {
_isLoading = false;
});
Navigator.of(context).pushReplacement(new MaterialPageRoute(
builder: (BuildContext context) =>
new VerifyOtp(_firebaseUser, verificationId)));
};
final PhoneCodeAutoRetrievalTimeout codeAutoRetrievalTimeout =
(String verificationId) {
_verificationId = verificationId;
};
await _firebaseAuth.verifyPhoneNumber(
phoneNumber: phoneController.text,
timeout: const Duration(minutes: 2),
verificationCompleted: verificationCompleted,
verificationFailed: verificationFailed,
codeSent: codeSent,
codeAutoRetrievalTimeout: codeAutoRetrievalTimeout);
}
final AuthCredential credential = PhoneAuthProvider.getCredential(
verificationId: widget.verificationId,
smsCode: otpController.text,
);
await _firebaseAuth.signInWithCredential(credential).then((user) {
}).catchError((error) {
showToast(error.toString(),
gravity: Toast.TOP, duration: Toast.LENGTH_LONG);
});
await _firebaseAuth.signInWithCredential(credential).then((user) {
}).catchError((error) {
showToast(error.toString(),
gravity: Toast.TOP, duration: Toast.LENGTH_LONG);
});
只需将其替换为
firebaseUser.linkWithCredential(credential).then((user) {
print(user.uid);
}).catchError((error) {
print(error.toString());
});
这是我的工作.....
每当我在Firebase中使用电子邮件/密码身份验证提供程序时,提供程序都会在成功注册时发送一个无记名令牌,即使是。是否有一种开箱即用的方法将电子邮件/密码身份验证提供程序配置为在用户验证其电子邮件地址之前不发送无记名令牌(并返回403错误)? 请注意,我知道如何创建用户、登录用户、发送验证电子邮件等。。。使用firebase v9。x通过firebase/auth中的方法创建用户(使用Email
主要内容:创建用户,登录,注销在本章中,我们将向您介绍如何使用Firebase电子邮件/密码身份验证。在开始之前,需要设置登录方法,参考以下图所示 - 点击设置登录方法,然后选择电子邮件地址/密码,打开启用并保存,如下图所示 - 创建用户 要验证用户,可以使用方法。 示例 让我们来看看下面的一个例子。参考代码 - 接下来,您可以检查Firebase仪表板中的数据库,并查看用户是否已创建成功。如下所示,已经创建了一个用户账号 -
如果不使用JavaScript,那么仅使用Django如何做到这一点呢?