如何使用firebase实现协作者邀请?
我正在开发一个带有firebase、angularfire和angularfire的应用程序。我想实施一个 “邀请合作方”功能与firebase本身实现协作的方式基本相同——即,应用程序用户可以输入电子邮件地址来邀请合作方,这将发送电子邮件并生成“inviteToken”,就像在firebase中邀请合作方一样。如何使用firebase实现协作者邀请?,firebase,angularfire,firebase-security,Firebase,Angularfire,Firebase Security,我正在开发一个带有firebase、angularfire和angularfire的应用程序。我想实施一个 “邀请合作方”功能与firebase本身实现协作的方式基本相同——即,应用程序用户可以输入电子邮件地址来邀请合作方,这将发送电子邮件并生成“inviteToken”,就像在firebase中邀请合作方一样。 我理解安全规则(限制合作者访问)和模式设计(a/collaborators‘folder’?)是一个方面,可以使用本机firebase和angular来完成。我的问题是如何最好地实现邀
我理解安全规则(限制合作者访问)和模式设计(a/collaborators‘folder’?)是一个方面,可以使用本机firebase和angular来完成。我的问题是如何最好地实现邀请电子邮件和“邀请令牌”?实现这种邀请功能最方便的方法是什么?可以使用本机firebase完成吗?或者需要实现单独的服务器端代码(nodejs?)?也许firebase团队中的某个人可以根据firebase本身如何实现协作发表意见 您可以通过散列要与之共享特定数据段的用户的电子邮件地址,并将其存储在权限字段下,来实现协作 例如,让我们从“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。您可以将“permissions”键的结构扩展为您想要的粒度(例如:协作者只能读取,但所有者可以读取和写入,等等)
例如,在实践中,您可能希望使用用户电子邮件地址的哈希。另外,请看一下简单登录,以获得对用户进行身份验证的简便方法(一旦进行了身份验证,上述安全规则中使用的
auth
变量将自动为您设置)。感谢您的回答,但是,据我所知,给出的示例似乎不起作用,因为auth.id不等于哈希电子邮件(user1实际上是电子邮件哈希值)。我们如何在安全规则中访问登录用户的电子邮件哈希?我使用的是firebase simple login,而auth对象似乎没有电子邮件属性。是否有未记录的auth属性可用于此目的?请澄清。您最终是如何进行的?您是否解决了问题?