我在 firebase 中有以下数据库结构
我正在尝试获取属于特定用户 ID (uid) 的数据。该文档有以下示例:
firebase.database().ref('/users/' + userId).once('value').then(function(snapshot) {
var username = snapshot.val().username;
// ...
});
但我如何在不知道每个对象的唯一键的情况下从我的示例中检索数据?
更新:
我尝试了一种新方法,将用户 ID 添加为主键,每个子对象都有自己唯一的 ID。
现在的挑战是如何获取“title”的值。
最佳答案
firebase.database().ref('/tasks/').orderByChild('uid').equalTo(userUID)
嗯,这很简单。然后你可以像这样使用它:
return firebase.database().ref('/tasks/').orderByChild('uid').equalTo(userUID).once('value').then(function(snapshot) {
var username = snapshot.val().username;
// ...
});
当然需要设置userUID。
它是带有一些过滤的查询。更多关于 Retrieve Data - Firebase doc
编辑:新挑战的解决方案是:
var ref = firebase.database().ref('/tasks/' + userUID);
//I am doing a child based listener, but you can use .once('value')...
ref.on('child_added', function(data) {
//data.key will be like -KPmraap79lz41FpWqLI
addNewTaskView(data.key, data.val().title);
});
ref.on('child_changed', function(data) {
updateTaskView(data.key, data.val().title);
});
ref.on('child_removed', function(data) {
removeTaskView(data.key, data.val().title);
});
请注意,这只是一个示例。
关于javascript - Firebase Web 检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39083242/