Firebase创建用户后第二个异步操作未执行且无报错如何解决?
问题排查方案
- 优先排查Firestore安全规则
这是最常见的触发原因。默认初始的Firebase安全规则会限制未认证用户的读写操作,即使你已经完成了身份认证,如果规则中没有开放users集合的写入权限,写入请求会被拒绝。你可以临时将安全规则替换为测试权限验证:
替换后如果写入逻辑正常执行,就确认是安全规则问题,后续再调整为符合业务要求的正式规则即可。rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if true; } } } - 检查写入参数合法性
确认fname、sname两个变量不是undefined或null,部分版本的Firebase SDK写入字段值为undefined时会出现静默失败的情况,可以先替换为固定测试值验证逻辑:await fdb.collection('users').doc(currentUser.user.uid).set({ Forname: "测试名", Surname: "测试姓", Liked: [], }) - 校验实例与参数正确性
打印fdb实例与currentUser.user.uid的值,确认Firestore实例指向的是正确的项目、生成的uid确实存在,同时确认你使用的Firebase SDK版本与当前写法匹配(你当前的写法适配v8版本或v9+的compat兼容版本,若使用纯模块化的v9+SDK语法会不兼容)。 - 补充外层异常捕获
确认你包裹这段逻辑的async函数没有被静默终止,可在函数调用处补充catch捕获逻辑,避免异常被外层吞掉没有打印。
内容的提问来源于stack exchange,提问作者SlugLord
相关产品推荐
相关产品推荐

