Skip to content

Commit 28b396b

Browse files
fix(firebase_messaging): Stream new token via onTokenRefresh when getToken invoked for iOS. (#8166)
1 parent f21004e commit 28b396b

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

packages/firebase_messaging/firebase_messaging/ios/Classes/FLTFirebaseMessagingPlugin.m

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -599,10 +599,18 @@ - (void)messagingGetNotificationSettings:(id)arguments
599599

600600
- (void)messagingGetToken:(id)arguments withMethodCallResult:(FLTFirebaseMethodCallResult *)result {
601601
FIRMessaging *messaging = [FIRMessaging messaging];
602+
603+
// Keep behaviour consistent with android platform, newly retrieved tokens are streamed via
604+
// onTokenRefresh
605+
bool refreshToken = messaging.FCMToken == nil ? YES : NO;
602606
[messaging tokenWithCompletion:^(NSString *_Nullable token, NSError *_Nullable error) {
603607
if (error != nil) {
604608
result.error(nil, nil, nil, error);
605609
} else {
610+
if (refreshToken) {
611+
[self->_channel invokeMethod:@"Messaging#onTokenRefresh" arguments:token];
612+
}
613+
606614
result.success(@{@"token" : token});
607615
}
608616
}];

0 commit comments

Comments
 (0)