如何每个用户链接到他们的火力地堡的数据?如何每个用户链接到他们的火力地堡的数据?(How do I

2019-05-10 13:33发布

我计划建立一个名为主要用户树,其中将包括不同的用户作为用户名的名称。 因此,从每个用户名会被纳入他们的数据,如姓名,地址,电话号码

我想知道如何登录时,他们的个人资料得到每个用户的数据。

Answer 1:

首先,我建议你花一些时间来熟悉火力通过阅读火力地堡指南 ( 链接到老火力地堡指南 )。 所有你需要知道的回答你自己的问题,请那里。 但是,为了简单起见,我将在这里放一个例子:

让我们从安全开始,这里有你需要为这个示例的基本火力规则:(来源: 了解安全 )(旧来源: 了解安全性 )

{
  "rules": {
    "users": {
      "$user_id": {
        ".write": "$user_id === auth.uid"
      }
    }
  }
}

我将跳过实际的用户创建和记录中,注重对存储和检索用户数据的问题。

存储数据:(来源: 火力地堡认证 )(旧的源: 用户认证 )

// Get a reference to the database service
var database = firebase.database();
// save the user's profile into Firebase so we can list users,
// use them in Security and Firebase Rules, and show profiles
function writeUserData(userId, name, email, imageUrl) {
  firebase.database().ref('users/' + userId).set({
    username: name,
    email: email
    //some more user data
  });
}

得到的火力点的数据将是这样的:

{
  "users": {
    "simplelogin:213": {
      "username": "password",
      "email": "bobtony"
    },
    "twitter:123": {
      "username": "twitter",
      "email": "Andrew Lee"
    },
    "facebook:456": {
      "username": "facebook",
      "email": "James Tamplin"
    }
  }
}

最后但并非最不重要的数据retreiving,这可以在几个方面,但在这个例子做我要去使用从火力引导一个简单的例子:(来源: 读取和写入数据 )(旧来源: Retreiving数据 )

//Get the current userID
var userId = firebase.auth().currentUser.uid;
//Get the user data
return firebase.database().ref('/users/' + userId).once('value').then(function(snapshot) {
    //Do something with your user data located in snapshot
});

编辑:返回数据的追加例题

所以,当你登录的用户的Twitter:123,你会得到基于你的用户ID的位置的参考,并会得到这样的数据:

"twitter:123": {
          "username": "twitter",
          "email": "Andrew Lee"
        }


文章来源: How do I link each user to their data in Firebase?