嗨,我是React Native的新手,我正在制作一个用于管理社团的应用程序,我已经在我的Firebase数据库中添加了“部门”和“社团”表,现在我想以这样的方式加入这些表:从部门中删除价值观,然后我各自的社会主义者也将其删除。
这是我的删除部门功能,也和删除社团的乐趣相同;
deleteDept = () => {
var abcd = deptref
.orderByChild('uuid')
abcd.once('value', function(abcdSnap) {
var a = abcdSnap.val();
var b = Object.keys(a)[0];
deptref.child(b)
.remove()
.then(function() {
console.log('Remove succeeded.');
alert('Department Removed ');
this.setState({
isDialogVisible: false
});
})
.catch(function(error) {
console.log('Remove failed: ' + error.message);
});
});
};
答案 0 :(得分:0)
您无法像使用RDBMS / SQL数据库那样实时地查看Firebase。将Firebase实时视为一个大的JSON对象,可以通过对象键(也是URL)访问所需的数据。这意味着JSON对象(和firebase实时)中没有“联接”之类的东西。我建议阅读更多有关设计方案的最佳实践的信息。是的,对于Firebase实时而言,期望它具有重复的数据(与SQL dbs不同)。
tl; dr:
不要将数据存储为数组。如果这样做,firebase会将数组存储为对象,其键是数组的索引:
array = [ '啊哈' 'hoho' ]
将存储为:
array: {
0: 'aha',
1: 'hoho'
}
例如:
{
users: {
user_id1: {
name: 'user 1',
phone: '123456',
email: 'testt@gmail.com'
}
},
events: {
participantst: {
user_id1: { // <= note for here I only want user's name & email thus its in this manner
name: 'user 1',
email: 'test@gmail.com'
}
}
}
}
不
{
users: {
user_id1: {
name: 'user 1',
phone: '123456',
email: 'testt@gmail.com'
}
},
events: {
participantst: {
user_id1: user_id1 // <= Doing it like this means you would need to make another call to the 'users' node to fetch the user data
}
}
}
还有更多。