如何从 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)
}
}
当任何用户注册 react native 时,我想从 firebase 获取 fcm 令牌,但它给了我这个错误
TypeError: undefined is not an object (evaluating '_this.getFcmToken')
答案 0 :(得分:0)
我建议像这样重写代码:
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
。他们没有this
。