使用JavaScript和Firebase,我如何创建用户特定的对象

Using JavaScript and Firebase, how can I create user specific objects?

本文关键字:用户 创建 对象 Firebase JavaScript 何创建 使用      更新时间:2023-09-26

我在这里真正想做的是允许用户创建一个对象,这样只有该用户可以看到和更改它。例如:我的代码看起来像这样:

    function createAccount(email, pass){
       firebase.auth().createUserWithEmailAndPassword(email,pass).catch(function(error) {
            var errorCode = error.code;
            var errorMessage = error.message;
            console.log(errorCode+":"+errorMessage);
       });
    }

我也有一个函数,我调用createAccountHome(),我希望是这样的结构:

    function createAccountHome(){
        firebase.database().ref().child('Profiles').push({
            // user id : something to link object solely to this user
            // data: data
        });
    }

我希望在这个阶段结束时,我可以创建一个帐户,然后为用户自动生成一个配置文件,以便用户只能对他/她自己的信息进行写访问。

最常用的存档方法是将用户数据保存在用户id下。所以不用push()而是用set(),像这样:

firebase.database().ref().child('Profiles').child(user.uid).‌​set({
  //data:data
})

为了确保用户只能看到和编辑他们自己的配置文件,你使用这些安全规则:

{
  "rules": {
    "Profiles": {
      "$uid": {
        ".read": "auth != null && auth.uid ==$uid",
        ".write": "auth != null && auth.uid ==$uid"
      }
    }
  }
}

对于一些阅读:链接到旧文档解释更多关于存储用户数据