TypeError undefined不是对象(评估' e.props.onChangeToken')

时间:2018-01-19 10:24:02

标签: ios firebase react-native typeerror testflight

我有一个本机应用程序,可以在xCode中运行(在模拟器和iPhone上都可以)。但是,当上传到TestFlight并通过TestFlight安装时,应用程序在首次启动时崩溃。当您再次打开应用程序时它运行正常。

我使用Bugsnag在发布到TestFlight后从应用程序获取错误报告。当应用程序崩溃时我在Bugsnag中收到的错误是:

TypeError undefined is not an object (evaluating 'e.props.onChangeToken')

堆栈跟踪:

main.jsbundle:518:677 
main.jsbundle:37:1281 value
main.jsbundle:18:2853 value
main.jsbundle:18:280 
main.jsbundle:18:2304 value
main.jsbundle:18:252 callFunctionReturnFlushedQueue

然而,这并没有告诉我太多......

我怀疑它可能会连接到Firebase,因为应用程序崩溃时我才会这样做:

  • 使用以下网址登录Firebase:

firebase.auth().signInWithEmailAndPassword(email, password)

  • 请求初始通知:

FCM.getInitialNotification().then(notif => { this.setState({ initNotif: notif });

  • 请求通知权限:

FCM.requestPermissions({ badge: false, sound: true, alert: true });

但是我不确定。有没有人收到类似的错误消息?

修改 在这篇文章的评论中找到了一个(!)其他相同错误的案例:https://blog.botreetechnologies.com/how-to-send-push-notification-to-the-android-phones-using-react-native-and-fcm-b28e1746da7b

这意味着它可能与FCM有关......

1 个答案:

答案 0 :(得分:0)

事实证明,错误是由我打电话引起的:

FCM.getInitialNotification().then(notif => { this.setState({ initNotif: notif });

在请求发送通知的权限之前......:

FCM.requestPermissions({ badge: false, sound: true, alert: true });