firebase获取特定用户的数据

时间:2016-08-27 20:32:50

标签: javascript firebase

我正在尝试构建一个类似于议程的webapp,以保存每个用户的联系人列表。因此,每个用户都可以拥有自己的联系人列表,问题是当我与特定用户登录时,我只想显示该用户拥有的联系人。

firebase.database().ref('contacts').orderByChild('uid').equalTo(uid).once('value')


contacts/
    contact-id
        firstName
        lastName
        uid

这就是我现在使用的,uid是已登录用户的ID。 有一个更好的方法吗 ? 谢谢你,丹尼尔!

1 个答案:

答案 0 :(得分:0)

像这样构建数据库:

users: {
    user1: {
        name: "User 1",
        contacts: {
            contact1: true,
            contact2: true
        }
    },
    user2: {
        name: "User 2",
        contacts: {
            contact1: true,
            contact3: true
        }
    }
}

将用户1,用户2替换为UID。

和联系人:

contacts: {
    contact1: {
        name: "Contact 1",
        mobile: 00000
    },
    contact2: {
        name: "Contact 2",
        mobile: 11111
    },
    contact3: {
        name: "Contact 3",
        mobile: 22222
    }
}

现在,当有人登录时,您将获得当前的uid,您可以使用它查找当前登录用户的联系人列表。

firebase.database().ref('users/'+userUID+'/contacts').on('child_added', snapshot => {
  firebase.database().ref('contacts/'+snapshot.key).on('value', snap => {
    console.log(snap.val().name); //Print name of persons in contact list
  });
});