Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当应用程序处于非活动状态时,不会触发Firebase设置功能_Firebase_React Native_Firebase Realtime Database_Expo - Fatal编程技术网

当应用程序处于非活动状态时,不会触发Firebase设置功能

当应用程序处于非活动状态时,不会触发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().

我需要存储我的应用程序当前活动状态的指示器

我使用react native提供的AppState跟踪应用程序的状态(请参阅)

当应用程序在后台激活时,行:

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触发器在连接丢失时会在本地保存,因此在连接恢复后可以触发,那么我的结论是很有可能的。