android - 电话验证后的 Cloud Firestore 文档检查
问题描述
我会尽量解释清楚
我想在验证完成时添加一个检查。因为检查应该是这样的:检查是否有一个文档 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;
},
);
}
请帮助我应该如何添加此检查。
解决方案
我从这个 Stack Overflow Question复制并修改了这段代码
DocumentSnapshot ds = await YOUR_DB_REFERENCE_IDENTIFIER.collection("YOUR_COLLECTION_NAME").document(user.uid).get();
return ds.exists;
推荐阅读
- bash - 通过unix检查作业是否完成
- css - 网格列 fr 不适用
- java - 如何getCount多私有int
- ssl - 让我们在 GKE 上加密、Kubernetes 和 Traefik
- python - 如何在没有 chr() 函数的情况下将数字转换为字符
- python - Python - 在数据框中添加行时出错:分配前引用的局部变量“finallog”
- javascript - 如何将此日期从 momentjs 转换为纯 JavaScript
- android - Kotlin 项目中来自 Gradle 的未解决依赖项
- javascript - 如何在 javascript 中读取 20 位整数?
- image - 如何将图像上传到 pycharm 项目?