【问题标题】:Firebase Auth USER_NOT_FOUNDFirebase 身份验证 USER_NOT_FOUND
【发布时间】:2021-08-19 20:55:00
【问题描述】:

我正在尝试创建一个帐户系统来创建一个新用户,然后将用户的数据设置为 Firebase Firestore。

function signUp(email, name, password, theme, privacy){
    firebase.auth().createUserWithEmailAndPassword(email, password).then(function(user) {
        var userId = user.uid;
        firebase.firestore().collection("Users").doc(`${userId}`).set({
            name: name,
            theme: theme,
            privacy: privacy
        }).then(() => {
            console.log("Document successfully written!");
        }).catch((error) => {
            console.error("Error writing document: ", error);
        });
      }).catch(function(error) {
        // Handle Errors here.
        var errorCode = error.code;
        var errorMessage = error.message;
        console.log('User did not sign up correctly');
        console.log(errorCode);
        console.console.log(errorMessage);
      });
}   

这是我的数据库规则

    match /Users/{userId}/{documents=**} {
      allow read, write: if isSignedIn() && isOwnerOfContent();
    }
    function isSignedIn(){
        return request.auth != null;
    }
    
    function isOwnerOfContent(){
        return request.auth.uid == userId;
    }

错误 =

{error: {code: 400, message: "USER_NOT_FOUND",…}}
error: {code: 400, message: "USER_NOT_FOUND",…}
code: 400
errors: [{message: "USER_NOT_FOUND", domain: "global", reason: "invalid"}]
0: {message: "USER_NOT_FOUND", domain: "global", reason: "invalid"}
domain: "global"
message: "USER_NOT_FOUND"
reason: "invalid"
message: "USER_NOT_FOUND

你觉得有什么不对吗?


我也收到此错误:

signUp.js:135 编写文档时出错:FirebaseError:权限缺失或不足。在新 xr (prebuilt.js:184) 在 prebuilt.js:10608 在 pr。 (prebuilt.js:10560) 在 Kt (eventtarget.js:351) 在 jt (eventtarget.js:481) 在 mr.sa (webchannelbasetransport.js:368) 在 Qe (webchannelbase.js:2219) 在 Ue (channelrequest. js:822) 在 xe.N.Ca (channelrequest.js:703) 在 xe.N.Xa (channelrequest.js:564)

【问题讨论】:

  • 您能否编辑您的问题以显示您从identitytoolkit 得到的全部回复(作为文本,请不要截图)?
  • 我也收到此错误
  • signUp.js:135 写入文档时出错:FirebaseError:权限缺失或不足。在新 xr (prebuilt.js:184) 在 prebuilt.js:10608 在 pr. (prebuilt.js:10560) 在 Kt (eventtarget.js:351) 在 jt (eventtarget.js:481) 在先生。 sa (webchannelbasetransport.js:368) 在 Qe (webchannelbase.js:2219) 在 Ue (channelrequest.js:822) 在 xe.N.Ca (channelrequest.js:703) 在 xe.N.Xa (channelrequest.js:第564章)
  • @FrankvanPuffelen

标签: javascript google-cloud-firestore firebase-authentication firebase-security


【解决方案1】:

您的isOwnerOfContent 使用userId,但该变量不在范围内:

function isOwnerOfContent(){
    return request.auth.uid == userId;
}

要使其正常工作,请将isOwnerOfContent 移入 match /Users/{userId}/{documents=**},或在调用中传递userId 值:

match /Users/{userId}/{documents=**} {
  allow read, write: if isSignedIn() && isOwnerOfContent(userId);
}
...    
function isOwnerOfContent(userId){
    return request.auth.uid == userId;
}

【讨论】:

    猜你喜欢
    • 2018-02-11
    • 1970-01-01
    • 2020-04-01
    • 2022-12-10
    • 1970-01-01
    • 2016-09-26
    • 2017-11-27
    • 1970-01-01
    相关资源
    最近更新 更多