firebase - Flutter 找不到 uid,它返回 null
问题描述
我的应用找不到 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()));
});
},
解决方案
在创建用户功能之前添加等待
await 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"
});
推荐阅读
- azure-machine-learning-studio - 将数据从 MongoDB atlas 导入 Azure Machinelearning
- machine-learning - PyTorch:动态冻结网络中的层?
- spring - 如何将 swagger 2 与 Spring Security 集成
- tesseract - tesseract 参数以减少图像中的噪声
- html - 一行中的 Span 元素不会包含在 Chrome 浏览器的 Bootstrap 容器中
- c++ - 使用 boost buffer 序列化和使用 UDP 协议发送
- c# - 将来自几个文本框的输入作为数组存储到一个字段
- java - AWS SQS 和 SES 依赖库相互影响
- android - 如何使用 TeamCity 构建我的 React Native 应用程序?
- c# - 如何解决“错误1064:处理控制请求时服务发生异常”?