【发布时间】:2021-05-30 00:15:02
【问题描述】:
我会尽量解释清楚
我想在验证完成后添加一个检查。因为检查应该是这样的:检查是否有一个文档 ID 为已验证的用户 UID。如果它在那里,然后去家里。如果不存在,则使用我已经创建的 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;
},
);
}
请帮助我如何添加此支票。
【问题讨论】:
-
但是在检查是否有文档之前,您已经在更新文档了。
-
@Apps247 是的,所以我需要添加该检查,这就是我需要帮助的地方。因为没有那个检查用户文档总是在更新我不想要的。如果具有用户 uid 的用户文档不存在,我希望它被更新,否则只需返回主屏幕,所以你
-
是的,但是您的
updateUserData在您的// TODO之前
标签: android ios firebase flutter google-cloud-firestore