我是firebase的新手,我想知道在其上构建数据的最佳方法是什么.
我有一个简单的例子:
我的项目有申请人和申请.1申请人可以有几个申请.如何在firebase上关联这两个对象?它是否像关系数据库一样工作?或者在数据设计方面需要完全不同的方法?
我是Firebase和nosql的新手,所以请耐心地使用我对sql的引用.所以我的问题是如何在firebase中构建数据?
在firebase中,这是指mysql中的每个"新firebase"="新数据库"还是"表"?
如果在我的实时网络应用程序中,我有用户和评论.在mysql中,我将创建一个用户和一个注释表,然后将它们链接在一起.
我如何在firebase中构建它?
说我有这种结构
A (collection): {
a (doc): {
name:'Tim',
B (collection):{
b (doc): {
color:'blue'
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
在哪里A和B是集合,a而且b是文档.
有没有办法通过一个查询获取根文档中包含的所有内容?
如果我这样查询
db.collection("A").doc("a").get()
Run Code Online (Sandbox Code Playgroud)
我刚刚name:'Tim'上场.我想要的是获得所有B的文件.
我基本上希望我的查询返回
{
user:'Tim',
B (collection):{
b (doc): {
color:'blue'
}
}
}
Run Code Online (Sandbox Code Playgroud)
是否可能或者我真的需要为每个集合进行多次查询:/?
假设我有一个非常深的嵌套树集合代表用户配置文件,我的成本会像地狱一样提高,因为每次加载用户配置文件时我都有一个读取请求的乘数,1 x N其中N是我树的深度:/.
我有一个Firebase数据库.我有公司和承包商.承包商可以为多个公司工作,公司可以拥有多个承包商.这是一个简单的多对多关系.我希望能够回答有关公司和承包商的问题:
在firebase中构建数据的替代方法有哪些?
我已经阅读了有关Stucturing Data的Firebase文档.数据存储很便宜,但用户的时间不是.我们应该优化get操作,并在多个地方写.
那么我可能会存储一个列表节点和一个列表索引节点,两者之间有一些重复的数据,至少是列表名称.
我正在使用ES6并在我的javascript应用程序中承诺处理异步流,主要是在第一次数据推送后从firebase获取ref密钥.
let addIndexPromise = new Promise( (resolve, reject) => {
let newRef = ref.child('list-index').push(newItem);
resolve( newRef.key()); // ignore reject() for brevity
});
addIndexPromise.then( key => {
ref.child('list').child(key).set(newItem);
});
Run Code Online (Sandbox Code Playgroud)
我知道我的应用程序只在客户端上运行,如何确保数据在所有地方保持同步?
为了进行健全性检查,我在我的承诺中设置了一个setTimeout,并在解决之前关闭了我的浏览器,实际上我的数据库不再一致,保存了一个没有相应列表的额外索引.
有什么建议?
我试图围绕如何构建firebase实时数据库的数据.我在以下建议中阅读了有关SO发现的文档和其他一些问题:
牢记这一点让我描述我的具体用例.首先,用户具有以下属性:
用户可以创建包含以下属性的故事:
故事的视觉表现可能如下所示:
我的问题是,您如何将用户信息(名字,姓氏,小型头像)与故事相关联?
我的想法:
将user_id放入包含特定用户的外部ID的故事中.要加载故事,我们必须向数据库发出两个请求,一个用于获取故事,另一个用于用户.
{user_id:'XYZ',文字:'foobar',时间戳:...}
在故事中加上名字,姓氏和小型头像.显示故事只需要一个请求.但是,当例如个人资料图片发生变化时,我们必须更新每个用户的故事.
{user_id:'XYZ',名字:'sandra',姓氏:'adams',smallProfilePicutre:'...',文字:'foobar',时间戳:...}
因此,当创建的故事很少并且大部分时间只有读取时,方法1.将是昂贵的,因为我们支付两次读取来显示故事.方法2.将更具成本效益.
我想在此就你的想法和想法.
我正在尝试使用Firebase创建一个数据库(json).我搜索了文档和网络,但找不到明确的方法开始.我想拥有一个用户数据库.每个用户(表示为UID)应该有一个昵称和一个朋友列表.
我尝试制作一个如下所示的.json文件:
{
users:{
}
}
Run Code Online (Sandbox Code Playgroud)
并将其添加到Firebase控制台以开始,但它不起作用.我该怎么做?
数据库应如下所示:
{
users:{
UID:{
nickname: hello
friends: UID2
}
UID2:{
nickname: world
friends: UID
}
}
Run Code Online (Sandbox Code Playgroud)
我不知道我是否做得对,所以我非常感谢你们在这个问题上能给我的任何帮助.提前致谢!