I am trying to use FirebaseInstanceId but keep getting the error
"Cannot resolve symbol FirebaseInstanceId".
The modules gradle includes
dependencies {
compile 'com.google.firebase:firebase-messaging:+'
compile 'com.google.firebase:firebase-iid:+'
}
The only thing which exists on com.google.firebase.iid seems to be .zzb. Am I missing something?
Firebase Instance ID provides a unique identifier for each app instance and a mechanism to authenticate and authorize actions (example: sending FCM messages). Instance ID is stable except when: App deletes Instance ID. App is restored on a new device. User uninstalls/reinstall the app.
public class FirebaseMessagingService extends Service. Base class for receiving messages from Firebase Cloud Messaging. Extending this class is required to be able to handle downstream messages.
Make sure you have all of these
implementation 'com.google.firebase:firebase-core:17.2.1'
implementation 'com.google.firebase:firebase-messaging:20.0.0'
implementation 'com.google.firebase:firebase-auth:19.1.0' // not necessary(required for signout and sign in)
Just this much is required.
Old questions but still relevant so here's an updated answer:
As of now (sept 2020) only implementation 'com.google.firebase:firebase-messaging:20.2.4'
is required in your app/build.gradle file (see referenced official doc).
To further add information that I've struggled to find elsewhere when I've researched how to implement push notifications for Android:
I'm assuming you're using FirebaseInstanceId to retrieve the Instance ID token created by Firebase and are following the guide (see linked documentation). If your main goal is to implement push notifications and you're using React Native I've found you don't need to create the MyFirebaseMessagingService that extends FirebaseMessagingService - you can implement the library react-native-firebase/app and react-native-firebase/messaging to access the token in clients App.
Install both @react-native-firebase/app
and @react-native-firebase/messaging
Then in your frontend App.js:
import messaging from '@react-native-firebase/messaging';
async function requestUserPermission() {
const getFcmToken = async () => {
const fcmToken = await messaging().getToken();
if (fcmToken) {
console.log(fcmToken);
console.log('Your Firebase Token is:', fcmToken);
} else {
console.log('Failed', 'No token received');
}
};
const authStatus = await messaging().requestPermission();
const enabled =
authStatus === messaging.AuthorizationStatus.AUTHORIZED ||
authStatus === messaging.AuthorizationStatus.PROVISIONAL;
if (enabled) {
getFcmToken();
console.log('Authorization status:', authStatus);
}
}
requestUserPermission();
I'm sure this can be refactored, please suggest edits :)
Official documentation Firebase
React Native Firebase library
Only use the dependency firebase-messaging
with firebase-core
firebase-iid is not required to be declared as dependency.
Here is the documentation : https://firebase.google.com/docs/cloud-messaging/android/client#set-up-firebase-and-the-fcm-sdk
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With