我正在开发一个应用程序与火基和角度和角度火。我想实现一个“邀请协作者”功能,就像firebase本身实现协作一样--也就是说,应用程序用户可以输入一个电子邮件地址来邀请协作者,这将发送一封电子邮件并生成一个"inviteToken",就像在firebase中邀请协作者一样。我理解安全规则(限制协作者访问)和架构设计( /collaborators‘文件夹’?)是一个方面,这可以使用本地firebase和angular来完成。我的问题是如何最好地实现邀请电子邮件和'inviteToken'?要实现这样的邀请功能,最方便的方法是什么?可以使用原生firebase来完成吗?或者需要实现单独的服务器端代码(nodejs?)?也许firebase团队中的一些人可以根据firebase本身实现协作的方式发表意见。
发布于 2014-02-04 07:05:19
您可以通过散列希望与其共享特定数据的用户的电子邮件地址,并将其存储在权限字段下来实现协作。
例如,让我们从‘user1’拥有的路径/items/item1开始:
{
"items": {
"item1": {
"data": "foobar",
"permissions": {
"user1": true
}
}
}
}
您可以按如下方式设置数据的安全规则:
{
"rules": {
"items": {
"$item": {
".read": "data.child('permissions').hasChild(auth.uid)",
".write": "data.child('permissions').hasChild(auth.uid)"
}
}
}
}
现在,当'user1‘想要与'user2’共享'item1‘时,他们只需写入值'user2',并在permissions键下将其设置为true。你可以将“权限”键的结构扩展为你想要的粒度(例如:协作者只能读,但所有者可以读写,等等)
例如,在实践中,您可能希望使用用户电子邮件地址的散列。还可以查看Simple Login,以获得一种对用户进行身份验证的简单方法(一旦通过身份验证,上面的安全规则中使用的auth
变量就会自动为您设置)。
https://stackoverflow.com/questions/21520514
复制相似问题