firebase - TypeError:未定义不是对象(评估'_this.getFcmToken')
问题描述
如何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')
解决方案
我建议像这样重写代码:
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
from this
。您要么async/await
在设置之前尝试获取它的useEffect
位置存在问题,要么在设置为状态之前尝试获取它的位置存在问题。我也不确定你想this
在反应函数中使用哪里。他们没有this
。
推荐阅读
- excel - 遍历列并检查当前行中的值是否与前一行中的值不同
- python - Python节拍间隔跟踪
- css - 如何在 bootstrap 4 中使打开的手风琴标题变粘?
- phpmailer - phpMailer 在 Outlook 中设置破坏 HTML 模板
- c# - 在 ASP.net 中创建 PDF 或“打印报告”
- excel - 是否有可以更改复制单元格内容的 vba 代码?
- database - 使用内存 SQLite 进行并发读取的最佳方法?
- python-3.x - 尽管 post() 登录成功,但 Python 请求身份验证失败并使用 get()
- json - 防止 Plug.ErrorHandler 在回调后重新引发错误
- javascript - typescript express 在 nodeJS 通过所需的 require('./main.ts') 运行时无法导出并显示未定义