经过身份验证后,如何修复auth.uid不起作用

时间:2019-07-05 08:12:49

标签: javascript firebase firebase-realtime-database firebase-authentication firebase-security-rules

我正在处理基于ionic的firebase-realtime-database,您能建议我如何为安全规则$ uid === auth.uid提供auth.uid吗?我想以当前正在处理拒绝访问的那个节点的所有者的身份读取uid内部的数据。

我拥有的安全规则是

rules {
"info": {     
   "$uid": {
      ".read": $uid === auth.uid,
   }     
 }
}

这是用于数据库json节点

{
  info: {
    f3de4734-8fb2-42bd-971d-8e693f8aab3b: {  // uid of dummy@gmail.com
            01: {
            name:jay
            age:16
            }
    }
  }
}

我已经尝试使用“ signInWithEmailAndPassword()”函数进行身份验证,但是似乎我仍然无法以该uid节点的所有者身份访问数据。

try {
      var r = await this.fAuth.auth.signInWithEmailAndPassword(
        "dummy@gmail.com",
        "123456"
      );
      if (r) {
        console.log("Successfully logged in!");
        await this.getafdData(); \\\ get the data when login

      }

    } catch (err) {
      console.error(err);
}
async getafdData(){

var firebaseRef = this.afd.database.ref();
let data = await new Promise(function(resolve,reject){
   return firebaseRef.child('info/')
      .on("child_added", function(snapshot) {
         console.log(snapshot.val());
         //resolve(data);


       }, function(err) {
         console.log(err);
         reject(err);
       })
    }); 
    return data;
}

您能告诉我我在做什么错吗?或更确切地说,为了达到规则 $ uid === auth.uid

0 个答案:

没有答案