Skip to content
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

[🐛] FCM onMessage triggers when the app moves from background to foreground [iOS] #7889

Closed
1 of 10 tasks
aslihanturkdonmez opened this issue Jul 10, 2024 · 3 comments
Closed
1 of 10 tasks
Labels
Needs Attention platform: ios plugin: messaging FCM only - ( messaging() ) - do not use for Notifications Stale type: bug New bug report

Comments

@aslihanturkdonmez
Copy link

Issue

When I send a notification while the app is in the background, the notification is received, and when I enter the app, onMessage is triggered, causing the notification to appear again. This works well on Android.

Javascript

useEffect(() => {
  const unsubscribe = messaging().onMessage(async (remoteMessage) => {
    Alert.alert("Hello");
  });

  return unsubscribe;
}, []);

Notification Content

{
  "token": "token",
  "data": {
    "notificationType": "xxx",
    "priority": "high",
    "id": "123435436",
    "actions": "[{\"title\" : \"test\",\"id\" : \"1\"}, {\"title\" : \"test2\",\"id\" : \"2\"}]",
    "title": "Test!",
    "body": "Test notification"
  },
  "notification": {
    "title": "Test!",
    "body": "Test notification"
  },
  "apns": {
    "payload": {
      "aps": {
        "content-available": 1,
        "mutable-content": 1,
        "sound": {
          "critical": true,
          "name": "default",
          "volume": 1.0
        }
      }
    }
  },
  "android": {
    "priority": "high"
  }
}

Project Files

Javascript

Click To Expand

package.json:

{
  "name": "testproject",
  "version": "0.0.1",
  "private": true,
  "dependencies": {
    "@notifee/react-native": "^7.8.2",
    "@react-native-async-storage/async-storage": "^1.21.0",
    "@react-native-community/netinfo": "^11.2.1",
    "@react-native-firebase/app": "^20.1.0",
    "@react-native-firebase/app-distribution": "^20.1.0",
    "@react-native-firebase/crashlytics": "^20.1.0",
    "@react-native-firebase/messaging": "^20.1.0",
    "@react-navigation/drawer": "^6.6.11",
    "@react-navigation/native": "^6.1.14",
    "@react-navigation/native-stack": "^6.9.22",
    "@reduxjs/toolkit": "^2.0.1",
    "axios": "^1.6.3",
    "i18n-js": "^4.3.2",
    "iso-639-1": "^3.1.0",
    "moment": "^2.30.1",
    "qs": "^6.11.2",
    "react": "18.2.0",
    "react-native": "0.73.4",
    "react-native-blob-util": "^0.19.9",
    "react-native-date-picker": "^5.0.2",
    "react-native-device-info": "^10.12.0",
    "react-native-gesture-handler": "^2.15.0",
    "react-native-image-picker": "^7.1.0",
    "react-native-keychain": "~8.1.2",
    "react-native-localize": "^3.0.4",
    "react-native-paper": "^5.12.3",
    "react-native-reanimated": "^3.7.2",
    "react-native-safe-area-context": "^4.9.0",
    "react-native-screens": "^3.29.0",
    "react-native-splash-screen": "^3.3.0",
    "react-native-svg": "^15.1.0",
    "react-native-toast-message": "^2.2.0",
    "react-native-vector-icons": "^10.0.3",
    "react-native-vision-camera": "^3.7.0",
    "react-native-webview": "^13.6.4",
    "react-redux": "^9.0.4",
    "rn-qr-generator": "^1.4.0",
    "victory-chart": "^36.7.0",
    "victory-native": "^36.7.0",
    "victory-pie": "^36.7.0"
  },
  "devDependencies": {
    "@babel/core": "^7.20.0",
    "@babel/plugin-transform-export-namespace-from": "^7.23.4",
    "@babel/preset-env": "^7.20.0",
    "@babel/runtime": "^7.20.0",
    "@react-native/babel-preset": "^0.73.21",
    "@react-native/eslint-config": "^0.73.2",
    "@react-native/metro-config": "^0.73.5",
    "@react-native/typescript-config": "0.73.1",
    "@types/qs": "^6.9.11",
    "@types/react": "^18.2.6",
    "@types/react-native-vector-icons": "^6.4.18",
    "@types/react-test-renderer": "^18.0.0",
    "babel-jest": "^29.6.3",
    "babel-plugin-module-resolver": "^5.0.0",
    "eslint": "^8.19.0",
    "jest": "^29.6.3",
    "prettier": "2.8.8",
    "react-native-svg-transformer": "^1.3.0",
    "react-test-renderer": "18.2.0",
    "reactotron-react-native": "^5.1.0",
    "reactotron-redux": "^3.1.7",
    "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:

// N/A

MainApplication.java:

// N/A

AndroidManifest.xml:

<!-- N/A -->


Environment

Click To Expand

react-native info output:

System:
  OS: macOS 14.2.1
  CPU: (10) arm64 Apple M2 Pro
  Memory: 95.42 MB / 16.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 21.6.2
    path: /opt/homebrew/bin/node
  Yarn:
    version: 1.22.19
    path: /opt/homebrew/bin/yarn
  npm:
    version: 10.2.4
    path: /opt/homebrew/bin/npm
  Watchman:
    version: 2024.01.22.00
    path: /opt/homebrew/bin/watchman
Managers:
  CocoaPods:
    version: 1.15.2
    path: /usr/local/bin/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 23.2
      - iOS 17.2
      - macOS 14.2
      - tvOS 17.2
      - watchOS 10.2
  Android SDK:
    Android NDK: 22.1.7171670
IDEs:
  Android Studio: 2023.1 AI-231.9392.1.2311.11330709
  Xcode:
    version: 15.1/15C65
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.10
    path: /usr/bin/javac
  Ruby:
    version: 2.6.10
    path: /usr/bin/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.73.4
    wanted: 0.73.4
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: true
  newArchEnabled: false
  • Platform that you're experiencing the issue on:
    • iOS
    • Android
    • iOS but have not tested behavior on Android
    • Android but have not tested behavior on iOS
    • Both
  • react-native-firebase version you're using that has this issue:
    • e.g. 5.4.3
  • Firebase module(s) you're using that has the issue:
    • e.g. Instance ID
  • Are you using TypeScript?
    • Y/N & VERSION


@aslihanturkdonmez aslihanturkdonmez added help: needs-triage Issue needs additional investigation/triaging. type: bug New bug report labels Jul 10, 2024
@aslihanturkdonmez aslihanturkdonmez changed the title [🐛] Bug Report Title - FCM onMessage triggers when the app moves from background to foreground [iOS] [🐛] FCM onMessage triggers when the app moves from background to foreground [iOS] Jul 10, 2024
@Lyokone
Copy link
Contributor

Lyokone commented Jul 16, 2024

Hello, I'm not reproducing on iOS, could you provide a full sample? Thanks

@Lyokone Lyokone added blocked: customer-response and removed help: needs-triage Issue needs additional investigation/triaging. labels Jul 16, 2024
@sanduluca
Copy link

Same as #7836

@russellwheatley russellwheatley added Stale plugin: messaging FCM only - ( messaging() ) - do not use for Notifications labels Aug 13, 2024
@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Aug 28, 2024
@aslihanturkdonmez
Copy link
Author

This issue was related to my notification content. The problem was resolved when I removed "mutable-content": 1.

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

No branches or pull requests

4 participants