Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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
Javascript FIrebase云函数:一次更新多个记录时出错_Javascript_Firebase_Firebase Realtime Database_Google Cloud Functions - Fatal编程技术网

Javascript FIrebase云函数:一次更新多个记录时出错

Javascript FIrebase云函数:一次更新多个记录时出错,javascript,firebase,firebase-realtime-database,google-cloud-functions,Javascript,Firebase,Firebase Realtime Database,Google Cloud Functions,我要做的是:每当向实时数据库中的特定节点添加新值时,我要尝试使用云函数更新一个单独的节点 更新实时数据库的代码:(有时我一次更新多个节点)使用{'uid/managedby':'newid'}符号 modifyManagerBeforeDelete(newManagedBy, oldManagedBy) { let updateVal = {}; let ref = this.afDB.database.ref('users').orderByChild('managedby

我要做的是:每当向实时数据库中的特定节点添加新值时,我要尝试使用云函数更新一个单独的节点

更新实时数据库的代码:(有时我一次更新多个节点)使用{'uid/managedby':'newid'}符号

  modifyManagerBeforeDelete(newManagedBy, oldManagedBy) {
    let updateVal = {};
    let ref = this.afDB.database.ref('users').orderByChild('managedby').equalTo(oldManagedBy);
    ref.on('value', (snapshot) => {
      if (snapshot.exists()) {
        let keys = Object.keys(snapshot.val());
        for (let uid of keys) {
          updateVal[uid + '/managedby'] = newManagedBy;
        }
        this.afDB.object('users').update(updateVal)
          .then(() => console.log("done"))
          .catch((error) => console.log(error));
      }
    });
  }
云功能:

exports.updatemanagedby = functions.database.ref('/users/{uid}/managedby').onUpdate(event => {
    if (event.data.previous.exists()) {
        var earlierHandler = event.data.previous.val();
        console.log("earlierHandler ", earlierHandler)
        var sourceId = event.params.uid;
        console.log("Current UID ", sourceId)
        console.log('/managedby/' + earlierHandler + '/' + sourceId);
        admin.database().ref('/managedby/' + earlierHandler + '/' + sourceId).once('value', function (snapshot) {
            snapshot.ref.remove()
        })
    }
    var newEmployee={}
    newEmployee[event.params.uid] = true;
    admin.database().ref('/managedby/' + event.data.val()).update(newEmployee)
        .then(()=>console.log("Update Successful"))
        .error((error)=>console.log(error));
})
错误:

实时数据库已更新,没有错误。但是,使用云函数时,我会遇到两种错误:

a) 当我更新实时数据库中的一个或两个记录,然后启动云函数onupdate时,我得到:

TypeError:admin.database(…)ref(…).update(…)。然后(…)。错误为 不是功能

但是,云功能起作用,记录也会更新

b) 当我更新实时数据库中的多个节点时,我得到:

一个无限循环,云功能不断运行,应用程序崩溃。云功能不会根据需要进行所有更新。我如何纠正这一点