Firebase数据库结构UID

时间:2017-11-23 00:35:49

标签: firebase data-structures firebase-realtime-database nosql

我问自己这种数据库结构是否合适,因为用PK AND 识别用户再次将UID置于该PK下。我不知道这是真的有意甚至更多,可能是危险的吗?



{
  "Users" : {
    "7idb6ThWR8aqmnEHFao5GRCV1kI3" : {
      "dPicture" : "https://firebasestorage.googleapis.com/v0/b/parkir-ngasal.appspot.com/o/Profile_images%2Fcropped1465266876.jpg?alt=media&token=44f83fdf-935a-4b3c-8138-561dcba2fca7",
      "status" : "hi my name is erik",
      "uid" : "7idb6ThWR8aqmnEHFao5GRCV1kI3",
      "username" : "erik"
    }
  },
  "posts" : {
    "-KfsrGsY8TWb2wiMFtAq" : {
      "dPicture" : "https://firebasestorage.googleapis.com/v0/b/parkir-ngasal.appspot.com/o/Profile_images%2Fcropped1465266876.jpg?alt=media&token=44f83fdf-935a-4b3c-8138-561dcba2fca7",
      "image" : "https://firebasestorage.googleapis.com/v0/b/parkir-ngasal.appspot.com/o/Post_Images%2Fcropped1354055061.jpg?alt=media&token=77fbc9ed-4356-43c1-b7bb-9563300a8b7b",
      "small_title" : "tes",
      "summary" : "tes",
      "title" : "tes",
      "uid" : "7idb6ThWR8aqmnEHFao5GRCV1kI3",
      "username" : "erik"
    }
  }
}




1 个答案:

答案 0 :(得分:1)

这并不危险。您在父级别设置的安全性向下遍历。来自Firebase文档:

  

.read和.write规则从上到下工作,规则较浅   压倒更深层次的规则。如果规则授予读取或写入权限   一个特定的路径,然后它还授予对所有子节点的访问权限   它

至于它是否有意义......这取决于你的决定。虽然在数据结构中复制密钥没有任何问题,但并不需要。从密钥检索数据与从有效负载中检索数据一样容易。

 const data = await firebase.database().ref(`/Users/`).once('value');

 const users = _.map(data.val(), (val, key) => {
   return { 
     userId: key, 
     val.username, 
     val.dPicture, 
     val.status
   };
 });