Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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
Reactjs 已移除Firebase多元素_Reactjs_Firebase_React Native_Firebase Realtime Database - Fatal编程技术网

Reactjs 已移除Firebase多元素

Reactjs 已移除Firebase多元素,reactjs,firebase,react-native,firebase-realtime-database,Reactjs,Firebase,React Native,Firebase Realtime Database,我的react原生应用程序中存在firebase问题 问题是如何从数据库中删除元素。我会一个接一个地删除几个多个项目,但当我这样做时,我的应用程序崩溃了 我的firebase数据库的结构: Workouts: id, data and trainings array. Trainings: id, id_exe and sets array. Sets: id, weight, reps. 当我有一个训练日,有一个训练练习和一套训练时,当我移除一套训练时,我想移除一套训练和该训练的训练 我试过

我的react原生应用程序中存在firebase问题

问题是如何从数据库中删除元素。我会一个接一个地删除几个多个项目,但当我这样做时,我的应用程序崩溃了

我的firebase数据库的结构:

Workouts: id, data and trainings array.
Trainings: id, id_exe and sets array.
Sets: id, weight, reps.
当我有一个训练日,有一个训练练习和一套训练时,当我移除一套训练时,我想移除一套训练和该训练的训练

我试过:

Promise.resolve(database.ref(`/workouts`).child(`/${id_workout}`).remove()
.catch((error) => console.log(error)))
  .then(() => { Promise.resolve(database.ref(`/trainings`).child(`/${id_tren}`).remove()
    .catch((error) => console.log(error)))
      .then(() =>
      database.ref(`/sets`).child(`/${set.id}`).remove()); 
 })

代码正确地从数据库中删除节点,但应用程序因错误而崩溃。我认为这是回调错误,但我不知道如何解决它

这是错误的通信:


当我删除sigle元素时,一切正常,但当我想一个接一个地删除元素时,应用程序崩溃。

错误表明问题出在
${set.id}
模板文本中的表达式上。
set
变量可能是
null
@cartant我检查您的建议,但是:1。console.log logged right set.id(console.log位于“删除集合”旁边的更深范围内)2。我用${set.id}注释了已删除的部分,但bug仍然是一样的。3.当我只删除了设置,锻炼或训练错误不存在,但当我链它,删除后删除控制台警报错误。4.这部分代码运行良好,因为它从数据库中删除了项目,但在删除应用程序后崩溃。重新启动应用程序时,删除的数据不存在。错误表明问题出在
${set.id}
模板文本中的表达式上。
set
变量可能是
null
@cartant我检查您的建议,但是:1。console.log logged right set.id(console.log位于“删除集合”旁边的更深范围内)2。我用${set.id}注释了已删除的部分,但bug仍然是一样的。3.当我只删除了设置,锻炼或训练错误不存在,但当我链它,删除后删除控制台警报错误。4.这部分代码运行良好,因为它从数据库中删除了项目,但在删除应用程序后崩溃。当我重新启动应用程序时,删除的数据不存在。
database.ref(`/workouts`).child(`/${id_workout}`).remove()
  .catch((error) => console.log(error)))
    .then(() => {
          database.ref(`/trainings`).child(`/${id_tren}`).remove()
            .catch((error) => console.log(error)))
            .then(() => {
                  database.ref(`/sets`).child(`/${set.id}`).remove()
                    .catch((error) => console.log(error)));
                  })
    })