我会尽力解释清楚
我想在验证完成后添加一张支票。这样做的检查方式应该是:检查是否有一个文档ID为已认证的用户UID的文档ID。如果有,那就回家。如果不存在,请使用我已经创建的updateData类创建一个文档,然后转到主页
这是我的电话验证代码
Future phoneAuthentication(
String fullName,
String phoneNumber,
String phoneIsoCode,
String nonInternationalNumber,
String profilePicture,
String verificationCode,
BuildContext context,
) async {
_auth.verifyPhoneNumber(
phoneNumber: phoneNumber,
timeout: Duration(seconds: 0),
verificationCompleted: (AuthCredential authCredential) async {
_auth.signInWithCredential(authCredential).then(
(UserCredential result) async {
User user = result.user;
await DatabaseService(uid: user.uid).updateUserData(
fullName,
phoneNumber,
phoneIsoCode,
nonInternationalNumber,
profilePicture,
);
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(
builder: (context) => CustomerDashboard(),
),
(route) => false,
);
},
).catchError(
(e) {
return null;
},
);
},
verificationFailed: (FirebaseAuthException exception) {
return "Error";
},
codeSent: (String verificationId, [int forceResendingToken]) {
var _credential = PhoneAuthProvider.credential(
verificationId: verificationId,
smsCode: verificationCode,
);
_auth.signInWithCredential(_credential).then(
(UserCredential result) async {
User user = result.user;
await DatabaseService(uid: user.uid).updateUserData(
fullName,
phoneNumber,
phoneIsoCode,
nonInternationalNumber,
profilePicture,
);
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(
builder: (context) => CustomerDashboard(),
),
(route) => false,
);
},
).catchError(
(e) {},
);
},
codeAutoRetrievalTimeout: (String verificationId) {
verificationId = verificationId;
},
);
}
请帮助我如何添加这张支票。
我从这个堆栈溢出问题中复制并改编了此代码
DocumentSnapshot ds = await YOUR_DB_REFERENCE_IDENTIFIER.collection("YOUR_COLLECTION_NAME").document(user.uid).get();
return ds.exists;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句