Quantcast
Channel: Active questions tagged react-native+ios - Stack Overflow
Viewing all articles
Browse latest Browse all 16920

iOS remote notification not working react-native-firebase [v6]

$
0
0

I am using RNFirebase and when developed from scratch using [v6]

When in foreground I am receiving notification but when I kill the app or the application is in background nothing is received.

My Package.json include

"dependencies": {"@react-native-firebase/analytics": "^6.7.1","@react-native-firebase/app": "^7.2.1","@react-native-firebase/crashlytics": "^6.7.1","@react-native-firebase/messaging": "^7.2.1","@react-native-firebase/remote-config": "^6.7.1",  },

In my podFile I am using FirebaseSDKVersion = 6.14.0 and others are mentioned below

platform :ios, '11.0'require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'permissions_path = '../node_modules/react-native-permissions/ios'$FirebaseSDKVersion = '6.14.0'def add_flipper_pods!(versions = {})  versions['Flipper'] ||= '~> 0.33.1'  versions['DoubleConversion'] ||= '1.1.7'  versions['Flipper-Folly'] ||= '~> 2.1'  versions['Flipper-Glog'] ||= '0.3.6'  versions['Flipper-PeerTalk'] ||= '~> 0.0.4'  versions['Flipper-RSocket'] ||= '~> 1.0'  pod 'FlipperKit', versions['Flipper'], :configuration => 'Debug'  pod 'FlipperKit/FlipperKitLayoutPlugin', versions['Flipper'], :configuration => 'Debug'  pod 'FlipperKit/SKIOSNetworkPlugin', versions['Flipper'], :configuration => 'Debug'  pod 'FlipperKit/FlipperKitUserDefaultsPlugin', versions['Flipper'], :configuration => 'Debug'  pod 'FlipperKit/FlipperKitReactPlugin', versions['Flipper'], :configuration => 'Debug'  # List all transitive dependencies for FlipperKit pods  # to avoid them being linked in Release builds  pod 'Flipper', versions['Flipper'], :configuration => 'Debug'  pod 'Flipper-DoubleConversion', versions['DoubleConversion'], :configuration => 'Debug'  pod 'Flipper-Folly', versions['Flipper-Folly'], :configuration => 'Debug'  pod 'Flipper-Glog', versions['Flipper-Glog'], :configuration => 'Debug'  pod 'Flipper-PeerTalk', versions['Flipper-PeerTalk'], :configuration => 'Debug'  pod 'Flipper-RSocket', versions['Flipper-RSocket'], :configuration => 'Debug'  pod 'FlipperKit/Core', versions['Flipper'], :configuration => 'Debug'  pod 'FlipperKit/CppBridge', versions['Flipper'], :configuration => 'Debug'  pod 'FlipperKit/FBCxxFollyDynamicConvert', versions['Flipper'], :configuration => 'Debug'  pod 'FlipperKit/FBDefines', versions['Flipper'], :configuration => 'Debug'  pod 'FlipperKit/FKPortForwarding', versions['Flipper'], :configuration => 'Debug'  pod 'FlipperKit/FlipperKitHighlightOverlay', versions['Flipper'], :configuration => 'Debug'  pod 'FlipperKit/FlipperKitLayoutTextSearchable', versions['Flipper'], :configuration => 'Debug'  pod 'FlipperKit/FlipperKitNetworkPlugin', versions['Flipper'], :configuration => 'Debug'end# Post Install processing for Flipperdef flipper_post_install(installer)  installer.pods_project.targets.each do |target|    if target.name == 'YogaKit'      target.build_configurations.each do |config|        config.build_settings['SWIFT_VERSION'] = '4.1'      end    end    if target.name == "ReactNativeMoEngage"      puts "Updating #{target.name} HEADER_SEARCH_PATHS"      append_header_search_path(target, "${PODS_ROOT}/../FoxyCreatorApp")    end  endenddef append_header_search_path(target, path)  target.build_configurations.each do |config|      xcconfig_path = config.base_configuration_reference.real_path      # to keep the delimiter at the end of each string:      file_data = File.read(xcconfig_path).split(/(?<=[\S])\n/)      # Copy current headers      header_search_paths = ""      header_search_paths_index = nil      file_data.select.with_index do |val, index|        if /HEADER_SEARCH_PATHS/ =~ val          header_search_paths = val          header_search_paths_index = index        end      end      # Append the new header      new_header_search_paths = header_search_paths << " #{path}"      file_data[header_search_paths_index] = new_header_search_paths      # Write it back to the file      file_data = file_data.join("\n")      File.write(xcconfig_path, file_data)  endendtarget 'FoxyCreatorApp' do  # Pods for FoxyCreatorApp  pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector"  pod 'FBReactNativeSpec', :path => "../node_modules/react-native/Libraries/FBReactNativeSpec"  pod 'RCTRequired', :path => "../node_modules/react-native/Libraries/RCTRequired"  pod 'RCTTypeSafety', :path => "../node_modules/react-native/Libraries/TypeSafety"  pod 'React', :path => '../node_modules/react-native/'  pod 'React-Core', :path => '../node_modules/react-native/'  pod 'React-CoreModules', :path => '../node_modules/react-native/React/CoreModules'  pod 'React-Core/DevSupport', :path => '../node_modules/react-native/'  pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS'  pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation'  pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob'  pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image'  pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS'  pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network'  pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings'  pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text'  pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration'  pod 'React-Core/RCTWebSocket', :path => '../node_modules/react-native/'  pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact'  pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'  pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'  pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'  pod 'ReactCommon/callinvoker', :path => "../node_modules/react-native/ReactCommon"  pod 'ReactCommon/turbomodule/core', :path => "../node_modules/react-native/ReactCommon"  pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga', :modular_headers => true  pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'  pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'  pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'  pod 'rn-fetch-blob', :path => '../node_modules/rn-fetch-blob'  pod 'FBSDKLoginKit'  target 'FoxyCreatorAppTests' do    inherit! :complete    # Pods for testing  end  use_native_modules!  # Enables Flipper.  #  # Note that if you have use_frameworks! enabled, Flipper will not work and  # you should disable these next few lines.  add_flipper_pods!  post_install do |installer|    flipper_post_install(installer)  endendtarget 'FoxyCreatorApp-tvOS' do  # Pods for FoxyCreatorApp-tvOS  target 'FoxyCreatorApp-tvOSTests' do    inherit! :search_paths    # Pods for testing  endend

I have taken these from RNFirebase APNS is already configured in Firebase Console

My AppDelegate.m include

#import "AppDelegate.h"@import Firebase;#import <React/RCTBridge.h>#import <React/RCTBundleURLProvider.h>#import <React/RCTRootView.h>#import <FBSDKCoreKit/FBSDKCoreKit.h>#import <PushKit/PushKit.h>#import "RNVoipPushNotificationManager.h"#import "RNCallKeep.h"#import <React/RCTBridgeModule.h>#import <React/RCTEventEmitter.h>#import <FirebaseMessaging.h>#import <React/RCTLog.h>- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{    [FIRApp configure];#if DEBUG  InitializeFlipper(application);#endif  RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:launchOptions];  RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge                                                   moduleName:@"Dummy"                                            initialProperties:nil];  rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];  self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];  UIViewController *rootViewController = [UIViewController new];  rootViewController.view = rootView;  self.window.rootViewController = rootViewController;  [self.window makeKeyAndVisible];  [FIRMessaging messaging].delegate = self;  [application registerForRemoteNotifications];  [[UNUserNotificationCenter currentNotificationCenter] setDelegate:self];  return YES;}- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{  [FIRMessaging messaging].APNSToken = deviceToken;}- (void)messaging:(FIRMessaging *)messaging didReceiveRegistrationToken:(NSString *)fcmToken {    NSLog(@"FCM registration token: %@", fcmToken);    // Notify about received token.    NSDictionary *dataDict = [NSDictionary dictionaryWithObject:fcmToken forKey:@"token"];    [[NSNotificationCenter defaultCenter] postNotificationName:     @"FCMToken" object:nil userInfo:dataDict];    // TODO: If necessary send token to application server.    // Note: This callback is fired at each app startup and whenever a new token is generated.}- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge{#if DEBUG  return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil];#else  return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];#endif}@end

In Info.plist I have set FirebaseAppDelegateProxyEnabled to NO

Index.js

if (Utility.isiOS()) {  messaging().registerDeviceForRemoteMessages();}firebase.messaging().setBackgroundMessageHandler(async (remoteMessage) => {  console.tron.log('Message handled in the background!', remoteMessage);});firebase.messaging().onMessage((message) => {  const {data} = message;}

Help would be appreciated :) Thanks


Viewing all articles
Browse latest Browse all 16920

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>