可以在没有客户端登录的情况下使用 Firebase 吗?

Posted

技术标签:

【中文标题】可以在没有客户端登录的情况下使用 Firebase 吗?【英文标题】:Can Firebase be used without clients logging in? 【发布时间】:2017-02-07 21:02:45 【问题描述】:

我正在开发一个可能使用 Firebase 进行消息传递的项目。目标是实现以下目标:

    应用在启动时向 Firebase 注册 应用将 Firebase 令牌发送到我们的服务器 我们的服务器通过第 2 步中的令牌向所有客户端发送 Firebase 消息

请注意,没有步骤可以让用户登录任何内容或输入任何凭据。如果这在生产应用程序中可行,我有点困惑,因为大多数 Firebase 文档都广泛讨论了通过用户名/密码、OAuth 等进行身份验证的不同方法。

服务器将向不同的客户端发送不同的消息,但该逻辑将由服务器处理,而不是通过向 Firebase 注册的不同类型。我知道 Firebase 支持群组,但长话短说它可能不会被利用。

这一切都可以在 Firebase 上完成吗? GCM 是否更适合这些要求?我觉得我们会丢弃 95% 的 Firebase,只是试图强制它简化消息传递部分。

【问题讨论】:

为了清楚起见,您只需要 Firebase 的数据库部分,对吗?身份验证的逻辑将由您的服务器处理? 你不太可能在这里实现你想要的。将您的 FCM 通知保持打开状态是一种垃圾邮件邀请,并且可能违反 Apple 和 Google 应用商店的条款和条件中的政策。 对不起,以缩短我最初帖子的名义,我不清楚。肯定会有身份验证,但它将由我们自己的现有服务器/API 处理。一旦客户端接收到任何 Firebase 信息,客户端将需要直接将其发送到服务器,服务器将决定向哪些客户端发送消息。我们不会使用群组来这样做。 【参考方案1】:

Firebase 身份验证根本不会影响Firebase Cloud Messaging 的工作方式。 FCM 只关心设备上应用程序的令牌,以此作为向应用程序发送消息的一种手段。它根本不关心最终用户是否通过任何方式进行了身份验证。如果您想以某种方式将令牌与用户相关联,使用 Firebase 身份验证或其他系统,这取决于您。

FCM 是 GCM 的演变。它们由基本相同的组件驱动。使用 GCM 不会给您带来比 FCM 更多的限制或灵活性,除了在您的应用中集成的路径。

【讨论】:

所以如果我们只需要消息部分,并且只打算让服务器戳 GCM/FCM 说“向设备 Y 发送消息 X”,那么 GCM 可能是最好的选择?听起来 Firebase 套件只会让事情复杂化。 您可以挑选您想要使用的 Firebase 部分。没有义务使用您不想使用的任何内容。但是,如果您选择它们​​,有些功能可以更好地协同工作。 GCM 正在被 FCM 取代,因此您最好使用更新的东西。 太好了,这正是我需要知道的。谢谢!

以上是关于可以在没有客户端登录的情况下使用 Firebase 吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何只允许我的应用在没有登录的情况下访问 firebase?

如何在没有客户端身份验证的情况下从服务器验证 Firebase 用户?

在不使用 Firebase 身份验证的情况下设置 Firestore 安全规则

在没有 Cocoapods 的情况下手动集成 Firebase 和 Google Sign In SDK 时出现重复符号

如何在不登录firebase / js的情况下注册用户[重复]

如何打开 Firebase Javascript 客户端的登录?