使用 Firebase 的 Android 聊天应用程序,但未在 firebase 中存储数据

Posted

技术标签:

【中文标题】使用 Firebase 的 Android 聊天应用程序,但未在 firebase 中存储数据【英文标题】:Chat application for Android using Firebase but without storing data in firebase 【发布时间】:2019-04-24 18:44:14 【问题描述】:

我们正在使用谷歌课堂 API 开发一个应用程序,用于建立师生关系。

现在,我们需要添加另一个功能,基本上是教师和学生之间的一对一聊天交流。为此,我在考虑 XMPP 或 FCM。我们有自己的服务器实现,用户(教师和学生)数据已经存在和维护。

但我对此有几个问题:

    如果我要使用基于 FCM 的聊天,是否需要针对 FCM 对用户进行身份验证?我已经在使用 FCM 发送通知。 在我看到的一些教程中,他们将对话和用户数据存储在 FCM 数据库中。我可以将它们存储在我的后端数据库中而不存储在 FCM 数据库中吗? 如果我尝试使用 XMPP,我会得到很多客户端代码,我可以使用 smack API。但我不了解服务器端的实现。有什么好的教程或github链接吗?

附:我不会使用任何现有的具有定价模型的聊天 sdk。所以,我需要基于上述的建议。

谢谢, 阿林丹。

【问题讨论】:

您似乎对 Firebase 消息传递和 Firebase DB 感到困惑。尽管使用相同的名称,但它们不是同一件事。事实上,它们彼此没有任何关系。 Firebase 只是 Google 编写/购买的一组云工具的营销名称。 并非如此。如果您看到 codelab 教程,他们说要存储在 firebase db 中。 codelabs.developers.google.com/codelabs/firebase-android/#5 。你知道我不需要存储在 Firebase DB 中并且我自己的身份验证可以工作的任何好的教程。 太好了,所以一个特定的教程决定同时使用两种不同的技术。这并不意味着你必须这样做。它们是两个完全独立且不相关的东西——如果你愿意,你可以使用其中一个而没有另一个。 好的。但同样,我们是否需要针对 Firebase 进行身份验证?我已经使用 google auth 对他进行了身份验证。 另一个问题。我们如何存储这些聊天消息?我可以存储在我们的后端服务器中吗? 【参考方案1】:

    Firebase 云消息传递不需要对用户进行身份验证。应用程序实例(在特定设备上安装您的特定应用程序)由应用程序 ID/FCM 令牌标识,这是 FCM 向该应用程序实例传递消息所需的全部内容。

    正如 Gabe 所说,Firebase Cloud Message 和 Firebase 数据库是完全独立的产品。它们可以一起使用,但不是必须的。 Firebase Cloud Messages 不是数据库,并且没有示例 API 来查询您可以从您的应用调用的消息。

【讨论】:

好的。明白了。但是对于基于 FCM 的聊天应用程序,我们不需要进行身份验证吗?正如我之前所说,我正在使用 FCM 发送通知。在那里,我们正在使用 FCM 代币。但我对聊天应用程序感到困惑。有没有很好的文章/教程礼物? “Firebase 云消息传递不需要对用户进行身份验证。”要求教程(和其他场外资源)在 Stack Overflow 上是无关紧要的。也就是说,我几年前写过这个:firebase.googleblog.com/2016/08/…

以上是关于使用 Firebase 的 Android 聊天应用程序,但未在 firebase 中存储数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 Firebase 在 android/iOS 应用程序与网络之间聊天

android firebase 一对一聊天应用

添加新项目时Android Firebase聊天RecyclerView自动滚动到底部

用于 android kotlin 的 agora io 1on 1 视频聊天在 firebase 中生成令牌

Firebase Android 聊天示例:无法弹回输入

Android - Firebase - 将用户发送到聊天室