我想在我的颤振应用程序上设置firebase inapp 消息传递。
首先,它需要在这里FirebaseInstanceId
解释,所以我可以测试发送消息到我的设备。
但是该文档没有详细说明如何在 Android 上获取它,尤其是在颤振上。
任何想法 ?
注意:有人声称他可以在 Flutter 中使用inapp-messaging,请看这里
先感谢您...
Firebase 实例 ID 可以使用iOS上的-instanceIDWithHandler或Android上的getInstanceId获取。
在撰写本文时,我不知道有一个独立插件可以做到这一点,这意味着您有两个选择:
如果您走 firebase_messaging 路线(请注意,这意味着您正在添加另一个依赖项),您可以执行以下操作:
final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
然后,在您的代码中的某处:
var token = await _firebaseMessaging.getToken();
print("Instance ID: $token");
更新
当您调用 get token 时,您会得到以下格式的内容:NNNNNNN:MMMMMMMMMMMMMMMMMM。仅取冒号前的第一部分 ( NNNNNNNN ) - 这是您测试应用内消息活动所需的实例 ID。
您可以在终端中运行它。
adb logcat | grep 'InAppMessaging'
02-26 23:47:44.835 28379 28379 I FIAM.Headless:使用安装 ID dTEmOkEwRzC_xiO8YNPXs0 启动 InAppMessaging 运行时
要检索FirebaseInstanceId
您需要实施 Firebase 应用内消息传递 SDK 并确保您的应用连接到 Firebase。
一旦应用程序连接到 Firebase,它会FirebaseInstanceId
在应用程序运行后将其添加到 Android 日志中。
在您链接的文章中,Google 解释说您可以FirebaseInstanceId
通过在日志中查找字符串来找到I/FIAM.Headless: Starting InAppMessaging runtime with Instance ID <YOUR_APP_ID>
。
如果您使用的是 Android Studio,您应该能够使用该logcat
窗口浏览设备的日志(在调试应用程序时)。该logcat
窗口还允许您搜索和过滤日志,因此找到提到的字符串应该相对容易。
简而言之(在 Android Studio 中):
Logcat
窗口;I/FIAM.Headless: Starting InAppMessaging runtime with Instance ID
;使用flutterfire_installations,您可以获得:
安装标识:
String id = await FirebaseAppInstallations.instance.getId();
身份验证令牌:
String token = await FirebaseAppInstallations.instance.getToken();