相关疑难解决方法(0)

调用 FirebaseInstanceId.getToken 的行为

我有两种类型的问题FirebaseInstanceId.getToken(String authorizedEntity, String scope),一种是多次调用此方法,另一种是调用此方法是否触发FirebaseMessagingService.onNewToken(String token)

1) 多次调用:根据本文档,一个人会调用getToken(String authorizedEntity, String scope)多次,每次使用不同的发件人 ID,以便能够接收来自多个发件人的消息。我的问题是,每个调用都会返回不同的令牌,还是每个调用都会返回相同的令牌,但现在该令牌也适用于多个发件人?如果我们使用之前使用过的发送者 ID 调用此方法,那么会返回现有令牌还是生成新令牌?

所以,假设我有这个操作顺序

  1. 调用getToken("senderId1", "FCM")并获取tokenA
  2. 称呼getToken("senderId2", "FCM")。我会得到A不同的代币吗B
  3. 称呼getToken("senderId2", "FCM")。我会得到A,,B还是另一个不同的C

2)会onNewToken被召唤吗?本文档指出,如果令牌发生更改,将调用该方法。那么这是否意味着 ifgetToken返回一个与之前不同的令牌 thenonNewToken也会被调用?如果我们要getToken多次调用以允许从不同的发送者接收,并且每次调用返回不同的令牌,那么onNewToken将继续被调用。

由于建议我们在onNewToken触发时更新服务器,因此我想了解预期的行为并避免在每次调用时更新服务器onNewToken

android firebase firebase-cloud-messaging

5
推荐指数
1
解决办法
2049
查看次数

Firebase - 我是否应该在特定情况下停止使用匿名身份验证?(另外,如何删除用户)

好的,我有一个关于同一件事的两部分问题.

我知道至少有四次这样问过,但我的问题略有不同.

问题1:

我为我的应用程序使用匿名身份验证(在应用程序安装时使用我的服务器对用户进行身份验证,并且再也不会).匿名身份验证仅在Android设备上完成,因此他们可以访问Firebase数据库和存储.我有经典的"1000+匿名用户"问题,许多人似乎最终结束.(我实际上有22个用户MAX).

可能的解决方案: 我知道你不能批量删除匿名用户,但是,如果我将所有用户ID(全部匿名)复制到一个文件中并将其读入我的node.js服务器,我可以以编程方式登录所有这些用户ID一次又删除它们?此解决方案适用于此次"删除这1000个用户"的问题.在那之后,我到达下一个阻止这种情况再次发生的问题.

问题2:

我使用匿名身份验证的原因是因为这个应用程序是政府办公室的紧急通知应用程序,有22个用户,绝对最大值.这些设备需要不停地监听通知.我使用FCM发送实际警报,但如果用户的电子邮件/密码/ google /任何登录状态进入"已注销"状态,该设备是否仍会收到FCM通知?

我问的原因是,也许我不需要使用匿名auth afterall.我使用它是因为我需要绝对100%确定无论用户做什么(没有安装我的应用程序或没有网络连接)他们都会得到通知.匿名auth允许我保证当他们进入我的应用程序时,他们可以访问数据库.

再说一遍,我想我做错了.

摘要:

我有一个Firebase数据库,用于存储用户发送的"警报对象".用户(最多22个)将这些警报直接从他们的Android设备发送到数据库.我的node.js服务器一直在监听变化.当它看到更改时,它会起作用,然后将FCM通知发送给在该通知上列为收件人的所有用户.在Android方面,这些用户匿名向Firebase数据库进行身份验证.但是,当他们安装应用程序时,他们会输入我在Firebase数据库中预先登录的用户名/密码(使用我制作的前端Web应用程序并在我的nodejs服务器上托管).这种匿名身份验证在我的情况下是否必要,或者我可以让他们使用Firebase进行电子邮件/密码身份验证,但仍然可以保证他们会收到警报.

好的,这个问题太长了,我会在这里停止.先感谢您.

firebase firebase-authentication firebase-cloud-messaging

2
推荐指数
1
解决办法
958
查看次数