如何在Flutter中获取“应用实例ID”

时间:2019-06-26 07:56:33

标签: firebase flutter dart firebase-in-app-messaging

我想在Flutter应用上设置 firebase应用内消息传递

首先,它需要here所述,FirebaseInstanceId,以便我可以测试将消息发送到我的设备。

但是,该文档并未详细说明如何在Android上(特别是在flutter上)获取它。

有什么主意吗?

注意:有人声称他可以扑朔迷离地使用 inapp-messaging ,请参阅here

先谢谢您...

3 个答案:

答案 0 :(得分:3)

可以在iOS上使用-instanceIDWithHandler或在Android上使用getInstanceId来获取Firebase实例ID。

在撰写本文时,我还不知道有一个独立的插件可以执行此操作,这意味着您有两个选择:

  • 编写您自己的插件,包装这些方法的本机实现
  • 使用firebase_messaging Flutter插件,该插件恰巧通过其getToken()方法公开实例ID

如果您使用firebase_messaging路由(请注意,这意味着您要添加另一个依赖项),则可以执行以下操作:

9.0-8/9.0-9 to 9.0-10

然后在代码中的某处:

final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();

更新

调用get令牌时,您会得到以下格式的内容: NNNNNNN:MMMMMMMMMMMMMMMMMMMM 。仅使用冒号( NNNNNNNN )之前的第一部分-这是测试应用内消息传递活动所需的实例ID。

答案 1 :(得分:1)

您可以在终端中运行它。

adb logcat | grep 'InAppMessaging'
<块引用>

02-26 23:47:44.835 28379 28379 I FIAM.Headless:开始 安装 ID 为 dTEmOkEwRzC_xiO8YNPXs0 的 InAppMessaging 运行时

答案 2 :(得分:-1)

要检索FirebaseInstanceId,您需要实现Firebase应用内消息传递SDK,并确保您的应用连接到Firebase。

一旦应用程序连接到Firebase,它将在应用程序运行后将FirebaseInstanceId添加到Android日志中。

在您链接的文章中,Google解释说,您可以通过在日志中查找字符串FirebaseInstanceId来找到I/FIAM.Headless: Starting InAppMessaging runtime with Instance ID <YOUR_APP_ID>

如果您使用的是Android Studio,则应该能够使用logcat窗口浏览设备的日志(在调试App的同时)。 logcat窗口还将允许您搜索和过滤日志,因此相对容易找到提到的字符串。

简而言之(在Android Studio中):

  1. 在您的应用中实现Firebase应用内消息传递SDK;
  2. 开始调试该应用程序(最好在真实的Android设备上);
  3. 调试时打开Logcat窗口;
  4. 在日志中搜索字符串I/FIAM.Headless: Starting InAppMessaging runtime with Instance ID;
  5. FirebaseInstanceId应该直接在字符串后列出。