如何仅在触发特定活动后启动 FCM ID 服务? [英] How to launch FCM ID Service only after a particular activity is triggered?

查看:17
本文介绍了如何仅在触发特定活动后启动 FCM ID 服务?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我有一个 LoginActivity,用户可以在其中注册或使用现有凭据登录.我不希望 FirebaseInstanceIdService 生成令牌,除非用户已登录并且应用程序的 MainActivity 已启动.

谢谢

解决方案

在用户登录之前,您不能阻止调用 FirebaseInstanceIdService.onTokenRefresh().

你可以在你的用例中做的是:

  • FirebaseInstanceIdService.onTokenRefresh() 如果用户未登录则忽略该事件
  • 当用户登录检查 FirebaseInstanceId.getToken() 并且如果 != null 调用 onTokenRefresh() (或直接你的逻辑) 手动.

这样你就可以在用户登录的时候处理token,如果token不可用(或者被轮换)你会在稍后收到onTokenRefresh()事件.p>

更新(2017 年 7 月 3 日):有读者在评论中提醒用户登录后可以调用 FirebaseInstanceIdService.onTokenRefresh().

这是对的.当用户登录时,如果之前没有调用 onTokenRefresh()getToken() 仍然可以返回 null.

您需要在您的应用中处理这种情况.用户很可能仍然可以使用该应用程序,但在收到令牌之前您无法发送推送通知.

onTokenRefresh()最终被调用时,如果用户之前登录过,则可以将token关联到用户.

Assume I have a LoginActivity where user can either register or login with existing credentials. I don't want FirebaseInstanceIdService to generate a token, unless user is logged in and MainActivity of the application is launched.

Thank you

解决方案

You cannot block FirebaseInstanceIdService.onTokenRefresh() from being called until the user is logged in.

What you could do in your use case is:

  • In FirebaseInstanceIdService.onTokenRefresh() ignore the event if the user is not logged-in
  • When the user log-in check FirebaseInstanceId.getToken() and if != null call onTokenRefresh() (or directly your logic) manually.

In this way you can process the token when the user is logged-in, and if the token is not available (or is rotated) you will receive the onTokenRefresh() event later.

Update (July 3 2017): in the comments a reader reminded that FirebaseInstanceIdService.onTokenRefresh() could be called after the user log in.

This is right. When the user log in, getToken() could still return null if onTokenRefresh() has not been called earlier.

You need to hadle this case in your app. Most likely the user can use the app anyway, but you cannot send a push notification until you received the token.

When onTokenRefresh() is finally called, if the user log in before, than you can associate the token the user.

这篇关于如何仅在触发特定活动后启动 FCM ID 服务?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆