Firebase 处理列表数据

Firebase working with list data

"groups": {

"techpioneers": {

      "name": "Historical Tech Pioneers",

      "members": {
        "alovelace": true,
        "ghopper": true,
        "eclarke": true
      }
    },
    ...
  }

这种结构可以在 firebase 文档中找到,但我不知道如何做 "members" child。如何写 'wildcard' 用户名作为键,布尔值作为值?

您可以使用 set()。 Firebase 使用 URL,因此您可以访问 members,如示例所示。

firebase.database().ref('groups/techpioneers/members').set({
    alovelace: true,
    ghopper: true,
    eclarke: true
});

编辑:

您可以将 alovelace 设置为当前 uid。首先获取当前用户uid。

var user = firebase.auth().currentUser;
var uid = '';
if (user != null) {
    uid = user.uid;
}

然后设置

var Obj = {};
Obj[uid] = true;
firebase.database().ref('groups/techpioneers/members/').set(Obj);

如果您想在成员中设置多个用户,您可以使用push():

var Obj = {};
Obj[uid] = true;
firebase.database().ref('groups/techpioneers/members/').push(Obj);

查看文档here

您实际上只需要将布尔值(或用户名对象)写入数据库即可。当您添加第一个子节点时,将创建所需的子节点。

例如:

firebase.database().ref('groups/techpioneers/members' + username).set(true);

firebase.database().ref('groups/techpioneers/members').set({username: true});