无需身份验证即可将数据写入Firebase实时数据库中的字段

时间:2019-02-23 11:15:50

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

我正在制作一个音乐下载的应用程序。下载音乐时,我有一个计数器来表示其下载次数,并且即时通讯使用Firebase交易来更新其下载次数:

  static increaseDownload(id) {  
    firebaseDB.ref("musics/" + id).transaction(musique => {
      if (musique) {
        musique.downloaded++;
      }
      return musique;
    });
  }

enter image description here

我知道,根据安全规则,必须对用户进行身份验证才能写入数据库/读到数据库,但是我不想注册和登录用户,也不想输入“ .write” :true对数据库中的每个数据。我希望用户能够访问该网站并下载。

我的问题是,如何增加“已下载”计数器,允许未经身份验证的用户仅向该“已下载”字段写入内容? 我希望未经身份验证的用户仅向该“下载的”字段,其他所有字段写入数据,并且未经身份验证就无法访问数据。

1 个答案:

答案 0 :(得分:0)

[编辑] 您可以仅在数据库中的其他信息保持私有且不可访问的情况下,才允许访问“音乐”节点的“下载”子节点。 将此添加到您的数据库规则

 
{
/* Visit https://firebase.google.com/docs/database/security to learn more about security rules. */
   "rules": {
      ".read": "false",
        ".write": "false",
    
     "musics":{
     "downloaded":{
       ".read": true,
         ".write": true
       }   
     } 
  }
}