firebase、flutter应该如何处理好友请求和邀请? [关闭]

Posted

技术标签:

【中文标题】firebase、flutter应该如何处理好友请求和邀请? [关闭]【英文标题】:How should friend requests and invitations be handled in firebase, flutter? [closed] 【发布时间】:2021-05-18 20:11:25 【问题描述】:

我正在使用 Flutter 和 Firebase 构建应用程序。在这个应用程序中,我希望用户能够互相邀请加入团队或互相添加为朋友。为此,想要邀请的用户必须输入有关其他用户的一些信息,最好是电子邮件。

我想到的一种方法是以某种方式获取其他用户的 UUID,并在数据库中他们的用户文档中的列表中添加邀请。不过,我不确定这会带来哪些安全风险。我找不到从电子邮件地址获取 UUID 的方法,我不希望用户必须自己输入 UUID。

另一种方法是通过电子邮件发送邀请链接。该链接可以是由 firebase 创建的动态链接。虽然我更愿意在应用内完成所有操作,而不必发送电子邮件。

使用 firebase 和 Flutter 实现此功能的最佳方式是什么?

【问题讨论】:

几乎可以投反对票了。为什么? “我想到的一种方法是以某种方式获取其他用户的 UID,并在数据库中他们的用户文档中的列表中添加邀请。” 这似乎避免了这么多 一般隐私(许多是安全)问题只是不“正确”。但是让我们来了解一下技术...... UID?不是UUID?从电子邮件地址获取?请提供更多详细信息。细节确实确实很重要。 UID是指firebase认证给每个用户的唯一ID,抱歉没有说清楚。我的数据库以这样一种方式设置,即每个用户都有自己的文档,其名称与他们的 uid 相同。为了让我更改该文档中的值,我需要知道 uid。正如我所说,我不确定安全风险,这就是我在这里问的部分原因。谢谢。 你有一个答案 - 但它指的是 UUID。我刚才问了。只是让你知道,我赞成你的问题。希望你能得到一个好的答案。 【参考方案1】:

为了实现您的目标,您可以使用 Firebase 动态链接。您可以在此处找到教程链接:Intro

还有一些视频教程解释了如何创建和接收动态链接。原理很简单。您创建一个链接,将其发送给您的朋友,邀请他们下载您的应用程序。在链接末尾附上发件人的 UUID。当接收者打开它时,您可以同时奖励发送者的 UUID 和接收者的 UUID,以奖励分享您的应用。

使用动态链接的一个好处是,即使接收者尚未下载您的应用,该链接也会首先根据手机将用户重定向到 Google Play 或 AppStore,当他获取您的应用时,链接将被自动接收。换句话说,接收者不需要在链接上点击两次。您案例中的信息将是发件人的 UUID。然后你可以奖励两个用户。

你也可以在这里找到一个很好的 ios 教程:

Integrate Firebase Dynamic Links to iOS Apps

【讨论】:

有问题吗?带有隐私和 UUID 选择加入的 iOS 14.x 如何与此配合使用? 如果您无权访问数据库,则无法将 UUID 与用户关联。另外关于安全性,如果您不是管理员,则无需向服务器发送“写入”请求。您可以使用 Firebase 云功能并仅授予特定用户访问权限。 谢谢。这个动态链接必须通过电子邮件或短信发送,对吧?我希望一切都可以在应用程序内完成,但如果我找不到让我这样做的解决方案,这可能是最好的方法。 在我的应用程序中,当我生成动态链接时,我会打开一个屏幕,允许用户选择如何共享它。您可以通过电子邮件、Facebook、WhatsApp、iMessages 进行操作。基本上随心所欲。当然,您也可以在应用内进行,但在这种情况下,您必须在设备之间建立通信。并且您必须确保接收器已经安装了该应用程序。如果您想分享一些关卡或奖励积分,那么这种方法非常适合游戏。 不要担心 Firebase 将处理的安全性,并且您不会显示 UUID,您基本上会将每个 UUID 与与之连接的电子邮件或用户名相关联。这样做,您的用户将能够通过输入他们的姓名或电子邮件来邀请朋友。当他们成为朋友时,您可以创建一个他们可以交换代码的视图。

以上是关于firebase、flutter应该如何处理好友请求和邀请? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

初始化 BLoC 时应该如何处理异步调用?

当 iOS 应用程序被暂停/杀死并且用户点击通知时如何处理 Firebase 推送通知?

Firebase Analytics 如何处理后台活动的会话持续时间(mp3 播放器)

当朋友在 PHP/MySQL 应用程序中忽略某人时,我应该如何处理?

Firebase云功能:如何处理持续请求

Firebase 如何处理离线时执行的事件?