Skip to content

[🐛] 🔥 @react-native-firebase/messaging giving SERVICE_NOT_AVAILABLE error #8488

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
1 of 8 tasks
sanaf1333 opened this issue Apr 24, 2025 · 1 comment
Open
1 of 8 tasks
Labels
blocked: customer-response platform: android plugin: messaging FCM only - ( messaging() ) - do not use for Notifications type: bug New bug report

Comments

@sanaf1333
Copy link

sanaf1333 commented Apr 24, 2025

Issue

I am using @react-native-firebase/messaging for push notifications, but getting this error when getting token FCM Error: NativeFirebaseError: [messaging/unknown] java.io.IOException: java.util.concurrent.ExecutionException: java.io.IOException: SERVICE_NOT_AVAILABLE. It worked for a split second and returned toke on same emulator but then again started throwing this error, I have also added timer in case the messaging isn't available instantly but unfortunately this didn't fix the issue.
I am using following versions

"@react-native-firebase/app": "^21.14.0",
    "@react-native-firebase/messaging": "^21.14.0",

I have also tried degrading to

"@react-native-firebase/app": "^21.12.0",
    "@react-native-firebase/messaging": "^21.12.0",

I have added this in AndroidManifest.xml

<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/ic_large_icon"/>
      <meta-data android:name="com.notifee.react.native.notification_icon" android:resource="@drawable/ic_large_icon"/>

I have added this in android/app/build.gradle

apply plugin: 'com.google.gms.google-services'
dependencies {
implementation "com.google.firebase:firebase-messaging:23.4.1"
}

Also added this in android/build.gradle
classpath 'com.google.gms:google-services:4.4.2'
This is my react-native version
"react-native": "0.79.1",
I have tried on both real device and emulator but its not working.

Describe your issue here


Project Files

buildscript {
    ext {
        buildToolsVersion = "35.0.0"
        minSdkVersion = 24
        compileSdkVersion = 35
        targetSdkVersion = 35
        ndkVersion = "27.1.12297006"
        kotlinVersion = "2.0.21"
    }
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath("com.android.tools.build:gradle")
        classpath("com.facebook.react:react-native-gradle-plugin")
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin")
        classpath 'com.google.gms:google-services:4.4.2'
    }
}

apply plugin: "com.facebook.react.rootproject"

apply plugin: "com.android.application"
apply plugin: "org.jetbrains.kotlin.android"
apply plugin: "com.facebook.react"
apply plugin: 'com.google.gms.google-services'

react {
    /* Folders */
    
    autolinkLibrariesWithApp()
}

def enableProguardInReleaseBuilds = false

def jscFlavor = 'io.github.react-native-community:jsc-android:2026004.+'

android {
    ndkVersion rootProject.ext.ndkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion
    compileSdk rootProject.ext.compileSdkVersion

    namespace "com.twin.investorMobileApp"
    defaultConfig {
        applicationId "com.twin.investorMobileApp"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode 1
        versionName "1.0"
    }
    signingConfigs {
        debug {
            storeFile file('debug.keystore')
            storePassword 'android'
            keyAlias 'androiddebugkey'
            keyPassword 'android'
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.debug
        }
        release {
            // Caution! In production, you need to generate your own keystore file.
            // see https://reactnative.dev/docs/signed-apk-android.
            signingConfig signingConfigs.debug
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        }
    }
}

dependencies {
    // The version of react-native is set by the React Native Gradle Plugin
    implementation("com.facebook.react:react-android")
    implementation "com.google.firebase:firebase-messaging:23.4.1"

    if (hermesEnabled.toBoolean()) {
        implementation("com.facebook.react:hermes-android")
    } else {
        implementation jscFlavor
    }
}
<manifest xmlns:android="http://schemas.android.com/apk/res/android">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />

    <application
      android:name=".MainApplication"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:allowBackup="false"
      android:theme="@style/AppTheme"
      android:supportsRtl="true">
      <meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/ic_large_icon"/>
      <meta-data android:name="com.notifee.react.native.notification_icon" android:resource="@drawable/ic_large_icon"/>
      <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode"
        android:launchMode="singleTask"
        android:windowSoftInputMode="adjustResize"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
      </activity>
      <service
          android:name=".java.MyFirebaseMessagingService"
          android:exported="false">
          <intent-filter>
              <action android:name="com.google.firebase.MESSAGING_EVENT" />
          </intent-filter>
      </service>
    </application>
    <queries>
      <intent>
        <action android:name="android.intent.action.VIEW" />
        <data android:mimeType="*/*" />
      </intent>
    </queries>
</manifest>

Javascript

Click To Expand

package.json:

{
  "name": "investor-portal-mobile",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "android": "react-native run-android",
    "ios": "react-native run-ios",
    "lint": "eslint .",
    "start": "react-native start",
    "test": "jest",
    "build:android-stage": "react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res && cd android && ./gradlew clean && ./gradlew assembleDebug"
  },
  "dependencies": {
    "@expo/html-elements": "^0.4.2",
    "@gluestack-ui/accordion": "^1.0.14",
    "@gluestack-ui/actionsheet": "^0.2.53",
    "@gluestack-ui/alert-dialog": "^0.1.38",
    "@gluestack-ui/button": "^1.0.14",
    "@gluestack-ui/checkbox": "^0.1.39",
    "@gluestack-ui/divider": "^0.1.10",
    "@gluestack-ui/form-control": "^0.1.19",
    "@gluestack-ui/icon": "^0.1.27",
    "@gluestack-ui/input": "^0.1.38",
    "@gluestack-ui/link": "^0.1.29",
    "@gluestack-ui/menu": "^0.2.43",
    "@gluestack-ui/modal": "^0.1.41",
    "@gluestack-ui/nativewind-utils": "^1.0.26",
    "@gluestack-ui/overlay": "^0.1.22",
    "@gluestack-ui/popover": "^0.1.49",
    "@gluestack-ui/pressable": "^0.1.23",
    "@gluestack-ui/progress": "^0.1.18",
    "@gluestack-ui/radio": "^0.1.40",
    "@gluestack-ui/select": "^0.1.31",
    "@gluestack-ui/switch": "^0.1.29",
    "@gluestack-ui/textarea": "^0.1.25",
    "@gluestack-ui/toast": "^1.0.9",
    "@legendapp/motion": "^2.4.0",
    "@notifee/react-native": "^9.1.8",
    "@ptomasroos/react-native-multi-slider": "^2.2.2",
    "@react-native-async-storage/async-storage": "^2.1.2",
    "@react-native-community/datetimepicker": "^8.3.0",
    "@react-native-documents/picker": "^10.1.2",
    "@react-native-firebase/app": "^21.12.0",
    "@react-native-firebase/messaging": "^21.12.0",
    "@react-navigation/bottom-tabs": "^7.3.10",
    "@react-navigation/native": "^7.1.6",
    "@react-navigation/native-stack": "^7.3.10",
    "@react-navigation/stack": "^7.2.10",
    "@tanstack/react-query": "^5.74.3",
    "axios": "^1.8.4",
    "countries-list": "^3.1.1",
    "nativewind": "^4.1.23",
    "react": "19.0.0",
    "react-dom": "^19.1.0",
    "react-hook-form": "^7.55.0",
    "react-native": "0.79.1",
    "react-native-biometrics": "^3.0.1",
    "react-native-css-interop": "^0.1.22",
    "react-native-dotenv": "^3.4.11",
    "react-native-file-viewer": "^2.1.5",
    "react-native-fs": "^2.20.0",
    "react-native-gesture-handler": "^2.25.0",
    "react-native-get-random-values": "^1.11.0",
    "react-native-gifted-charts": "^1.4.60",
    "react-native-google-places-autocomplete": "^2.5.7",
    "react-native-keyboard-aware-scroll-view": "^0.9.5",
    "react-native-linear-gradient": "^2.8.3",
    "react-native-mmkv": "^3.2.0",
    "react-native-permissions": "^5.3.0",
    "react-native-plaid-link-sdk": "^12.1.1",
    "react-native-reanimated": "^3.17.4",
    "react-native-reanimated-carousel": "^4.0.2",
    "react-native-safe-area-context": "^5.4.0",
    "react-native-screens": "^4.10.0",
    "react-native-share": "^12.0.9",
    "react-native-svg": "^15.11.2",
    "react-native-url-polyfill": "^2.0.0",
    "react-native-vector-icons": "^10.2.0",
    "react-native-webview": "^13.13.5",
    "tailwindcss": "^3.4.17"
  },
  "devDependencies": {
    "@babel/core": "^7.25.2",
    "@babel/preset-env": "^7.25.3",
    "@babel/runtime": "^7.25.0",
    "@react-native-community/cli": "18.0.0",
    "@react-native-community/cli-platform-android": "18.0.0",
    "@react-native-community/cli-platform-ios": "18.0.0",
    "@react-native/babel-preset": "0.79.1",
    "@react-native/eslint-config": "0.79.1",
    "@react-native/metro-config": "0.79.1",
    "@react-native/typescript-config": "0.79.1",
    "@types/jest": "^29.5.13",
    "@types/react": "^19.0.0",
    "@types/react-test-renderer": "^19.0.0",
    "babel-plugin-module-resolver": "^5.0.2",
    "eslint": "^8.19.0",
    "jest": "^29.6.3",
    "jscodeshift": "^0.15.2",
    "prettier": "2.8.8",
    "react-test-renderer": "19.0.0",
    "typescript": "5.0.4"
  },
  "engines": {
    "node": ">=18"
  }
}

firebase.json for react-native-firebase v6:

# N/A

iOS

Click To Expand

ios/Podfile:

  • I'm not using Pods
  • I'm using Pods and my Podfile looks like:
# N/A

AppDelegate.m:

// N/A


Android

Click To Expand

Have you converted to AndroidX?

  • my application is an AndroidX application?
  • I am using android/gradle.settings jetifier=true for Android compatibility?
  • I am using the NPM package jetifier for react-native compatibility?

android/build.gradle:

// N/A

android/app/build.gradle:

// N/A

android/settings.gradle:

pluginManagement { includeBuild("../node_modules/@react-native/gradle-plugin") }
plugins { id("com.facebook.react.settings") }
extensions.configure(com.facebook.react.ReactSettingsExtension){ ex -> ex.autolinkLibrariesFromCommand() }
rootProject.name = 'namehere'
include ':app'
includeBuild('../node_modules/@react-native/gradle-plugin')


Environment

Click To Expand

react-native info output:

System:
  OS: macOS 15.0.1
  CPU: (12) arm64 Apple M2 Pro
  Memory: 123.61 MB / 16.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 22.1.0
    path: ~/.nvm/versions/node/v22.1.0/bin/node
  Yarn:
    version: 1.22.22
    path: ~/.nvm/versions/node/v22.1.0/bin/yarn
  npm:
    version: 10.8.2
    path: ~/.nvm/versions/node/v22.1.0/bin/npm
  Watchman:
    version: 2025.02.17.00
    path: /opt/homebrew/bin/watchman
Managers:
  CocoaPods:
    version: 1.16.2
    path: /opt/homebrew/bin/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 24.0
      - iOS 18.0
      - macOS 15.0
      - tvOS 18.0
      - visionOS 2.0
      - watchOS 11.0
  Android SDK:
    API Levels:
      - "31"
      - "34"
      - "35"
    Build Tools:
      - 33.0.1
      - 34.0.0
      - 35.0.0
    System Images:
      - android-35 | Google Play ARM 64 v8a
      - android-35 | Pre-Release 16 KB Page Size Google APIs ARM 64 v8a
    Android NDK: Not Found
IDEs:
  Android Studio: 2024.1 AI-241.15989.150.2411.11948838
  Xcode:
    version: 16.0/16A242d
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.11
    path: /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home/bin/javac
  Ruby:
    version: 2.6.10
    path: /usr/bin/ruby
npmPackages:
  "@react-native-community/cli":
    installed: 18.0.0
    wanted: 18.0.0
  react:
    installed: 19.0.0
    wanted: 19.0.0
  react-native:
    installed: 0.79.1
    wanted: 0.79.1
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: true
iOS:
  hermesEnabled: true
  newArchEnabled: true
  • Platform that you're experiencing the issue on:
    • iOS
    • [ x] Android
    • iOS but have not tested behavior on Android
    • [x ] Android but have not tested behavior on iOS
    • Both
  • react-native-firebase version you're using that has this issue:
    • "@react-native-firebase/messaging": "^21.14.0",
  • Firebase module(s) you're using that has the issue:
    • @react-native-firebase/messaging
  • Are you using TypeScript?
    • Y & 5.0.4

@MichaelVerdon MichaelVerdon added platform: android plugin: messaging FCM only - ( messaging() ) - do not use for Notifications labels Apr 28, 2025
@MichaelVerdon
Copy link
Collaborator

Hi there, this issue has happened to users before and there are a few things to check, this issue could be happening due to (mentioned in this thread: firebase/firebase-android-sdk#4053 (comment)):

  • The phone is offline.
  • The phone is online but it cannot reach Google servers.
  • The firebase messaging servers are temporary unavailable.
  • Google Play services is in an extremely bad state.
    So I think it is important to double check your Google Services File and ensure everything is correct.

Here is another thread from React Native Firebase for when this issue occured in the past here with possible solutions: #2285

I would also like to ask you what devices you are using to test this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked: customer-response platform: android plugin: messaging FCM only - ( messaging() ) - do not use for Notifications type: bug New bug report
Projects
None yet
Development

No branches or pull requests

2 participants