【发布时间】:2021-07-22 19:17:14
【问题描述】:
我的应用找不到 uid。我觉得逻辑有问题。如果验证成功完成,那么它应该创建 uid 并写入 Firebase。
我的代码:
Future<void> signInWithTelephoneNumber(context,
{String phoneNumber, smsCode, codeController}) async {
emit(state.copyWith(
phoneNumber: phoneNumber, isInProgress: true, errorMessage: ""));
await FirebaseAuth.instance.verifyPhoneNumber(
phoneNumber: "+9$phoneNumber",
timeout: const Duration(seconds: 60),
verificationCompleted: (PhoneAuthCredential credential) async {
await FirebaseAuth.instance
.signInWithCredential(credential)
.then((value) async {
final uid = value.user.uid;
final existingUserDocs = await FirebaseFirestore.instance
.collection('Users')
.where('uid', isEqualTo: uid)
.get();
if (existingUserDocs.docs.isEmpty || existingUserDocs.docs == null) {
FirebaseFirestore.instance.collection('Users').doc(uid).set({
'email': phoneNumber,
'username': "Deneme User",
'uid': uid,
'userPhotoUrl':
"https://kulisvar.com/wp-content/uploads/2019/11/sagopa-kajmer-696x465.jpg"
});
}
Navigator.pushReplacement(
context, MaterialPageRoute(builder: (context) => HomePage()));
});
},
【问题讨论】:
-
你打印了 uid 吗?
-
我写在下面
-
"我的应用找不到 uid" 这是什么意思?当您在调试器中单步执行此代码时,哪一行没有按照您的预期执行?
-
@FrankvanPuffelen 是的。 Firebase 用户 ID 返回 null,
-
请更具体。当您在调试器中运行此代码时,您在哪一行确定 UID 为空?
标签: firebase flutter google-cloud-firestore firebase-authentication