我在Firebase上创建了一个数据库,其结构如下:
employees
employee-id
name: "Jhon Doe"
bio: "Software Developer"
birthday: "03/23/1986"
recognitions
recognition-id
date: "03/23/2017"
employee: employee-id
type: "Team Working"
如何在同一个对象中使用员工的数据从我的数据库中获取所有识别?
我正在使用AngularJS在网上开发这个。
答案 0 :(得分:1)
您可以创建自己的对象,因为Firebase
没有数据库端的连接功能。
var bigObject = {};
// Find all recognitions
var ref = firebase.database().ref("recognitions");
ref.once("value").then(function(snapshot) {
bigObject = snapshot.val();
// Loop through all recognitions
for(o in bigObject) {
var ref2 = firebase.database().ref("employees").child(bigObject[o].employee);
ref.once("value").then(function(snapshot2) {
bigObject[o].employee = snapshat2.val();
}
}
});
你会得到这样的东西:
recognitions
recognition-id
date: "03/23/2017"
employee
name: "Jhon Doe"
bio: "Software Developer"
birthday: "03/23/1986"
type: "Team Working"
如果您使用的是JavaScript SDK(没有标记AngularFire)
,这将有效答案 1 :(得分:1)
我发现使用唯一ID在不同引用之间连接的正确方法是以下代码:
var bigObject = {};
// Find all recognitions
var ref = firebase.database().ref('recognitions');
ref.once('value').then(function(snapshot) {
bigObject = snapshot.val();
// Loop through all recognitions
for (o in bigObject) {
var ref2 = firebase.database().ref('employees').child(bigObject[o].employee);
ref2.once('value').then(function(snapshot2) {
bigObject[o].profile = snapshot2.val();
// Bind the content to the view
$scope.$apply(function() {
$scope.data = bigObject;
});
});
}
});