Flutter FCM getToken() returns 空
Flutter FCM getToken() returns null
FCM getToken()
在真实设备上总是 returns null,但在模拟器上工作得很好,我不知道是什么原因造成的。这是我如何使用 getToken()
:
FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
String fcmToken = "";
await _firebaseMessaging.getToken().then((value) async {
fcmToken = value;
if (fcmToken != "") {
await _userCollection.doc(user.id).set({
'email': user.email,
'name': user.name,
'noHp': user.noHp,
'alamat': user.alamat,
"email_verification": user.emailVerification,
"phone_verification": user.phoneVerification,
"device_token": fcmToken,
});
}
return;
});
我使用的真实设备是AndroidMarshmallow。
以下是et Token的获取方法:
final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
_firebaseMessaging.getToken().then((String token) {
assert(token != null);
saveToken(token);
});
我正在将令牌保存在 pref 中以供进一步使用。您可以根据您的要求修改它。
void saveToken(String token) async {
var prefs = await SharedPreferences.getInstance();
await prefs.setString(Constants.DeviceToken, token);
}
如有任何问题,请随时发表评论。我正在我当前的应用程序中使用。
对于iOS您需要征求许可。
_firebaseMessaging.requestNotificationPermissions(
const IosNotificationSettings(
sound: true, badge: true, alert: true, provisional: true));
_firebaseMessaging.onIosSettingsRegistered
.listen((IosNotificationSettings settings) {
print("Settings registered: $settings");
});
对于更新版本的用户,有一种访问令牌的新方法:
String token = await FirebaseMessaging.instance.getToken();
您只有在初始化 Firebase 并请求权限后才能访问令牌。
FCM getToken()
在真实设备上总是 returns null,但在模拟器上工作得很好,我不知道是什么原因造成的。这是我如何使用 getToken()
:
FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
String fcmToken = "";
await _firebaseMessaging.getToken().then((value) async {
fcmToken = value;
if (fcmToken != "") {
await _userCollection.doc(user.id).set({
'email': user.email,
'name': user.name,
'noHp': user.noHp,
'alamat': user.alamat,
"email_verification": user.emailVerification,
"phone_verification": user.phoneVerification,
"device_token": fcmToken,
});
}
return;
});
我使用的真实设备是AndroidMarshmallow。
以下是et Token的获取方法:
final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
_firebaseMessaging.getToken().then((String token) {
assert(token != null);
saveToken(token);
});
我正在将令牌保存在 pref 中以供进一步使用。您可以根据您的要求修改它。
void saveToken(String token) async {
var prefs = await SharedPreferences.getInstance();
await prefs.setString(Constants.DeviceToken, token);
}
如有任何问题,请随时发表评论。我正在我当前的应用程序中使用。
对于iOS您需要征求许可。
_firebaseMessaging.requestNotificationPermissions(
const IosNotificationSettings(
sound: true, badge: true, alert: true, provisional: true));
_firebaseMessaging.onIosSettingsRegistered
.listen((IosNotificationSettings settings) {
print("Settings registered: $settings");
});
对于更新版本的用户,有一种访问令牌的新方法:
String token = await FirebaseMessaging.instance.getToken();
您只有在初始化 Firebase 并请求权限后才能访问令牌。