rek*_*irt 4 angularjs firebase angularfire
我正在为Firebase和AngularFire创建一个由用户,帖子和评论组成的数据结构.我的印象是用户的密钥/ ID是用户名,而评论和帖子的密钥/ ID将是自动生成的firebase密钥.
我一直在研究angularfire文档,并对$push()使用该方法时添加到对象的自动生成的键(name())感到困惑.
查看firebase网站上的一些示例,我看到Users对象的示例没有自动生成的密钥 - 单个用户的密钥是用户名 - 但同时添加密钥数组通过的对象 $push
我的问题是:
1)我应该一直使用firebase自动生成的密钥吗?如果没有,那么如何添加新用户,因为$push()自动创建密钥,并$set()重置所有用户?
2)$id和之间有什么关系name()?
示例数据
来自https://www.firebase.com/docs/web/guide/saving-data.html
文档显示以下Users对象:
{
"users": {
"alanisawesome": {
"date_of_birth": "June 23, 1912",
"full_name": "Alan Turing"
},
"gracehop": {
"date_of_birth": "December 9, 1906",
"full_name": "Grace Hopper"
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何在不重置当前用户$set()或添加angularfire id的情况下添加更多用户push()?
然后是一个带有生成id的Posts对象:
{
"posts": {
"-JRHTHaIs-jNPLXOQivY": {
"author": "gracehop",
"title": "Announcing COBOL, a New Programming Language"
},
"-JRHTHaKuITFIhnj02kE": {
"author": "alanisawesome",
"title": "The Turing Machine"
}
}
}
Run Code Online (Sandbox Code Playgroud)
非常感谢.
简短的回答:您可能不想push用来存储您的用户.
如果您从其他来源获取密钥,例如uid来自简单登录,您几乎肯定会想要使用它uid来组织您的firebase中的用户及其数据.
这是因为,您的用户正在进行的会话始终为您提供uid可用于查找其用户数据及其内容的会话.
如果您根据已知的用户ID进行设置,则可以在这种情况下安全地使用set,而无需重置所有用户.
但我认为你所得到的是,所以一般来说,你什么时候设置vs推?
典型的博客可能在Firebase中看起来像这样:
{
'users' : {
// uid from Simple Login, that you used with set()
'google-1234' : {
'displayName' : 'Jane Smith',
...
}
, ...
},
'posts' : {
// a blog post ID you pick and use for set()
'blog-post-id-i-use-in-the-url' : {
'title' : 'Blog Post Title',
'contents' : 'Four score and seven...'
}, ...
}
'postComments' {
'blog-post-id-i-use-in-the-url' : {
// Firebase generated ID done with push()
'_fe31ca1' : {
// uid from simple login (assuming comments require auth)
'commenterUserId': 'google-5678',
'commentBody': 'cats back for everyone!'
} ... other comments ...
}
}
}
Run Code Online (Sandbox Code Playgroud)
在此示例中,我们set在插入新用户和帖子时使用,因为我们从其他来源获得了一个很好的唯一ID.这些ID很好,因为它们允许我们稍后根据该ID轻松调用内容.
不过,我们用它push来评论.我们没有来自其他来源的好ID,订单也很重要,因此我们让Firebase为我们生成密钥.这很好用,因为大部分时间我们都在处理与条目相关的注释,所以我们可以根据需要抓取它们.
| 归档时间: |
|
| 查看次数: |
396 次 |
| 最近记录: |