Failed to authenticate with the FCM server [ANDROID] EAS build
See original GitHub issueSummary
Hey guys i’m trying to integrate expo notifications in my managed app. I created a custom client since we are using libraries with native code. I installed expo notifications. followed the Using FCM for Push Notifications instructions manually uploaded my API key from the Credentials Tab to Android (EAS) on expo.dev made sure my API key is not restricted, and made sure i’m using the same one thats in my google-services.json file
but every time I try to send a notification I get the following error on Android
` “data”: Object { “details”: Object { “error”: “InvalidCredentials”, “fault”: “developer”, “fcm”: Object { “httpStatus”: 401, “response”: "<HTML>
<HEAD> <TITLE>INVALID_KEY_TYPE</TITLE> </HEAD> <BODY BGCOLOR=\"#FFFFFF\" TEXT=\"#000000\">INVALID_KEY_TYPE
Error 401
</BODY> </HTML> ", }, }, "id": "f575fde5-db1f-418f-9e00-a6a6bc6c2e10", "message": "Failed to authenticate with the FCM server. Ensure the FCM server key you uploaded is correct.", "status": "error", }, }`Package version : “expo-notifications”: “~0.12.3”,
app.json { “expo”: { “name”: “EventShare”, “slug”: “EventShare”, “version”: “0.1.0”, “orientation”: “portrait”, “icon”: “./assets/1024.png”, “splash”: { “image”: “./assets/splash.png”, “resizeMode”: “contain”, “backgroundColor”: “#ffffff” }, “androidStatusBar”: { “backgroundColor”: “#ffffff”, “translucent”: true }, “updates”: { “fallbackToCacheTimeout”: 0 }, “assetBundlePatterns”: [“**/*”], “ios”: { “supportsTablet”: true, “userInterfaceStyle”: “dark”, “infoPlist”: { “NSCameraUsageDescription”: “This app uses the camera to take pictures, videos and scan barcodes on from other users.” }, “bundleIdentifier”: “com.simplyrem.GalleryShare”, “buildNumber”: “1.0.8”, “icon”: “./assets/1024.png” }, “android”: { “jsEngine”: “hermes”, “googleServicesFile”: “./google-services.json”, “adaptiveIcon”: { “foregroundImage”: “./assets/adaptive-icon.png”, “backgroundColor”: “#FFFFFF” },
"userInterfaceStyle": "dark",
"package": "com.simplyrem.GalleryShare"
},
"web": {
"favicon": "./assets/favicon.png"
}
}
}
Managed or bare workflow? If you have ios/
or android/
directories in your project, the answer is bare!
managed
What platform(s) does this occur on?
Android, iOS
SDK Version (managed workflow only)
42
Environment
Expo CLI 4.7.3 environment info: System: OS: macOS 10.15.7 Shell: 5.7.1 - /bin/zsh Binaries: Node: 14.15.1 - /usr/local/bin/node Yarn: 1.22.10 - /usr/local/bin/yarn npm: 7.8.0 - /usr/local/bin/npm Watchman: 4.9.0 - /usr/local/bin/watchman Managers: CocoaPods: 1.10.1 - /usr/local/bin/pod SDKs: iOS SDK: Platforms: iOS 14.4, DriverKit 20.2, macOS 11.1, tvOS 14.3, watchOS 7.2 IDEs: Android Studio: 4.1 AI-201.8743.12.41.6858069 Xcode: 12.4/12D4e - /usr/bin/xcodebuild npmPackages: expo: ^42.0.0 => 42.0.0 react: 16.13.1 => 16.13.1 react-dom: 16.13.1 => 16.13.1 react-native: https://github.com/expo/react-native/archive/sdk-42.0.0.tar.gz => 0.63.2 react-native-web: ~0.13.12 => 0.13.18 npmGlobalPackages: expo-cli: 4.7.3 Expo Workflow: managed
Reproducible demo or steps to reproduce from a blank project
- create a custom client
- install expo-notifications
- create Firebase Cloud Messaging file
- drop it in your projects root directory
- add “android”: { “googleServicesFile”: “./google-services.json”, … }
- rebuild custom client using eas build --profile development --platform android
- Run code to get expo notification token.
Issue Analytics
- State:
- Created 2 years ago
- Comments:7 (2 by maintainers)
HERE IS THE FULL SOLUTION
For android you have to do the Firebase Cloud Messaging steps. For iOS you need to make sure you choose your credentials. Both tasks are explained below. Unless you’re still running your project in the Expo Go app, Firebase Cloud Messaging is required for all managed and bare workflow Android apps made with Expo. Full Instructions Here is my version of the FULL instructions on getting notifications working on both platforms after expo install expo-notifications if you are using a custom client and EAS. Youtube video showing how to add firebase to your project. Start watching from 4:00 minutes https://www.youtube.com/watch?v=dRYnm_k3w1w
@AlexanderLindkjaer Anytime my man! Ive told Evan before… i’ve said it many times and i’ll say it again. Very detailed documentation is awesome but nothing beats a quick easy to follow / dummy proof list that gets you up and running. So glad it helped someone 😄