首先,我知道NOSQL系统没有JOIN。但是我知道有一种方法可以获取带有另一个表值的数据。
关于我的应用程序: 该应用程序是基本的社交网络应用程序。人们可以共享照片。这些帖子保存的是Firebase数据库“实时数据库”,而不是Cloud Firestore,因为它具有时间轴页面。此页面显示共享的帖子。我需要显示带有发布者信息的帖子。
使用firebase身份验证登录的用户,我有一个名为kullanici的users表,如下所示。
我需要在Posts表中删除displayName,而不是在kullanici表中获取isim。
我需要的数据是:用kullanici-> {posts。{postid} .userid}-> isim发布。
我的工作代码如下:
return (dispatch) => {
firebase.database().ref(`/posts`).endAt("tarih").limitToLast(2)
.on('value', snapshot => {
dispatch({type: STUDENT_LIST_DATA_SUCCESS, payload: snapshot.val()});
});
};
我返回的数据如下:
Object {
"-L9tnfvm6jQiKLc378c6": Object {
"aciklama": "",
"baslik": "Ensar mı Ahmet mi",
"displayName": "HasanRiza",
"image": "https://hasan-riza-uzuner.s3.amazonaws.com/1523535677033.png",
"like": 244,
"tarih": 1523535757133,
"userid": "fD7IfKAhXogFwHtfKYiF7LMtXNp1",
},
"-LYHPJgR4sywTzpcxX7A": Object {
"aciklama": "Ev",
"baslik": "Nasıl",
"displayName": "HasanRiza",
"image": "https://hasan-riza-uzuner.s3.us-east-2.amazonaws.com/1549718296409.png",
"like": 1,
"tarih": 1549718342522,
"userid": "fD7IfKAhXogFwHtfKYiF7LMtXNp1",
},
}
答案 0 :(得分:-1)
var promises = [];
group_ids.forEach(function (group_id) {
promises.push(firebase.firestore().collection('Group').doc(group_id).get())
});
Promise.all(promises).then(function(docs) {
docs.forEach((groupDoc) => {
group.name = groupDoc._data['name'];
group.city = groupDoc._data['city'];
group.state = groupDoc._data['state'];
groups.push(group);
});
console.log(groups);
});