# #firebase #react-native #firebase-cloud-messaging
Вопрос:
Как добраться fcm token
изнутри firebase
react-native
. В настоящее время я использую эти пакеты
@react-native-firebase/app
@react-native-firebase/messaging
мой код
const RegisterScreen = (props) => {
const [fcmToken, setfcmToken] = useState();
useEffect(() => {
messaging()
.getToken()
.then(token => {
return saveTokenToDatabase(token);
});
}, []);
async function saveTokenToDatabase(token) {
console.log(token)
}
}
Я хочу получить токен fcm от firebase, когда любой пользователь регистрируется в react native, но это выдает мне эту ошибку
TypeError: undefined is not an object (evaluating '_this.getFcmToken')
Ответ №1:
Я бы рекомендовал переписать код следующим образом:
const RegisterScreen = async (props) => {
const [fcmToken, setfcmToken] = useState();
useEffect(() => {
messaging()
.getToken()
.then((token) => {
return setfcmToken(token);
});
}, []);
async function saveTokenToDatabase(token) {
console.log(token);
}
useEffect(() => {
if (fcmToken) {
saveTokenToDatabase(fcmToken);
}
}, [fcmToken]);
};
Из вашего сообщения об ошибке похоже, что вы пытаетесь получить token
от this
. У вас либо есть проблема с async/await
тем, где вы пытаетесь получить его, прежде чем установить, либо проблема с useEffect
тем, где вы также можете попытаться получить его, прежде чем он будет установлен в состояние. Я также не уверен, где вы хотите использовать this
функцию react. У них этого нет this
.