当应用程序处于非活动状态时,不会触发Firebase设置功能
我需要存储我的应用程序当前活动状态的指示器 我使用react native提供的AppState跟踪应用程序的状态(请参阅) 当应用程序在后台激活时,行:当应用程序处于非活动状态时,不会触发Firebase设置功能,firebase,react-native,firebase-realtime-database,expo,Firebase,React Native,Firebase Realtime Database,Expo,我需要存储我的应用程序当前活动状态的指示器 我使用react native提供的AppState跟踪应用程序的状态(请参阅) 当应用程序在后台激活时,行: firebase.database().ref(`users/${userID}/live`).set(1); firebase.database().ref(`users/${userID}/live`).set(0); works只需查找存储在数据库中的值。 问题是当应用程序处于非活动状态时: firebase.database().
firebase.database().ref(`users/${userID}/live`).set(1);
firebase.database().ref(`users/${userID}/live`).set(0);
works只需查找存储在数据库中的值。
问题是当应用程序处于非活动状态时:
firebase.database().ref(`users/${userID}/live`).set(1);
firebase.database().ref(`users/${userID}/live`).set(0);
尽管控制台中显示日志语句,但不会执行。
我使用Expo和react native,所以我尝试了应用程序的开发模式和发布版本,但问题仍然存在
有什么帮助吗?如文件所述
inactive(非活动)-这是在
前景和背景,以及在不活动期间,如
进入多任务视图或在接到来电时
因此,当您的应用程序进入后台时,它首先将处于非活动状态,您需要更改的是您的状态,nextapstate
将处于非活动状态
if (this.state.appState.match(/active|foreground/) && nextAppState === "inactive") {
console.log("App inactive ...")
firebase.database().ref(`users/${userID}/live`).set(0);
}
阿里非常感谢你的回复。控制台会打印“App inactive”,这表示条件已经满足,但firebase调用仍然没有执行。这就像应用程序在未预先接地时失去与互联网的连接,因为有时(并非总是)当应用程序预先接地时,值会立即更改为0,然后立即更改为1,并且由于firebase触发器在连接丢失时会在本地保存,因此在连接恢复后可以触发,那么我的结论是很有可能的。