Javascript Firebase只允许创建者发布
我一直在为我的个人网站开发一个博客应用程序,我只想允许自己发布新的博客文章,但允许所有登录的用户向文章添加评论 以下是当前数据的外观:Javascript Firebase只允许创建者发布,javascript,firebase,firebase-realtime-database,firebase-authentication,firebase-security,Javascript,Firebase,Firebase Realtime Database,Firebase Authentication,Firebase Security,我一直在为我的个人网站开发一个博客应用程序,我只想允许自己发布新的博客文章,但允许所有登录的用户向文章添加评论 以下是当前数据的外观: "posts": { "-KpZlH9PYs7mAf8avBmI" : { "comments" : { "-KpZwWIrbM3JQ2ug1c5_" : { "message" : "How are you today?", "timestamp" : 1500637173055, "us
"posts": {
"-KpZlH9PYs7mAf8avBmI" : {
"comments" : {
"-KpZwWIrbM3JQ2ug1c5_" : {
"message" : "How are you today?",
"timestamp" : 1500637173055,
"user" : "Florin Pop"
},
"-KpZyxoC0OTxnDZymP-M" : {
"message" : "I'm fine, thank you!",
"timestamp" : 1500637814102,
"user" : "Florin Pop"
}
},
"likes" : 0,
"text" : "asxszx",
"timestamp" : 1500634227427,
"title" : "qwqew"
}
}
正如你所看到的,一篇文章有:评论列表,喜欢,文本,时间戳和标题
我不确定这种结构是否符合我的要求
有没有办法检查我是否是当前登录的用户,然后才允许创建新帖子
我应该分开评论吗
p.S.
目前我的数据库规则是:
{
"rules": {
".read": true,
".write": "auth != null"
}
}
我应该分开评论吗
即使不知道应用程序的所有细节,答案几乎肯定是“是”。在不同的顶级节点中使用不同的实体类型通常会大大简化数据库的安全规则
是否有办法检查我是否是当前登录的用户
在安全规则中,您可以检查操作是否来自具有auth!=空
。但就我所见,您的JSON不包含UID,因此我不清楚当前用户是谁
我应该分开评论吗
即使不知道应用程序的所有细节,答案几乎肯定是“是”。在不同的顶级节点中使用不同的实体类型通常会大大简化数据库的安全规则
是否有办法检查我是否是当前登录的用户
在安全规则中,您可以检查操作是否来自具有
auth!=空
。但据我所知,您的JSON不包含UID,因此我不清楚当前用户是谁。我建议您进行以下更改:
在数据库的根目录中创建一个新对象admins
,可以编辑/创建帖子的用户:
"admins": {
"<ADMIN_1_UID>": "true",
"<ADMIN_2_UID>": "true"
}
我建议您进行以下更改: 在数据库的根目录中创建一个新对象
admins
,可以编辑/创建帖子的用户:
"admins": {
"<ADMIN_1_UID>": "true",
"<ADMIN_2_UID>": "true"
}
好。。。我有
auth!=当前为空,但允许所有用户在网站上创建博客帖子。我只想让自己这么做。有什么方法可以通过电子邮件或github检查吗?我在上面的问题中添加了我目前的规则。。。这确保只有经过身份验证的用户才能向帖子添加评论。若要访问安全规则中的电子邮件地址,请参阅,这是检查用户是否是博客应用程序的我的最佳方法?我是否需要将所有用户存储在Firebase数据库中?嗯。。。我有auth!=当前为空,但允许所有用户在网站上创建博客帖子。我只想让自己这么做。有什么方法可以通过电子邮件或github检查吗?我在上面的问题中添加了我目前的规则。。。这确保只有经过身份验证的用户才能向帖子添加评论。若要访问安全规则中的电子邮件地址,请参阅,这是检查用户是否是博客应用程序的我的最佳方法?我是否需要将所有用户存储在Firebase数据库中?我如何获得自己的UID?我如何获得自己的UID?