Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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 - Fatal编程技术网

Javascript Firebase实时数据库我可以';不改变数据

Javascript Firebase实时数据库我可以';不改变数据,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,这个问题刚刚开始出现。问题是当我在firebase控制台上更改数据时,它不允许我进行更改。当我试图更改应用程序上的数据时,它进入了一个完美的bug。我所更改的数据会快速自我更新并返回到其原始状态,并且这种情况会持续下去。数据库开始一直更新,我在安全规则中添加了write false,现在更新停止了 只有在更改图片中标记的节点中的数据时,才会出现此问题 用户=>UserId=>forms=>formId 编辑 这是我的云功能: exports.scheduledFunction = functi

这个问题刚刚开始出现。问题是当我在firebase控制台上更改数据时,它不允许我进行更改。当我试图更改应用程序上的数据时,它进入了一个完美的bug。我所更改的数据会快速自我更新并返回到其原始状态,并且这种情况会持续下去。数据库开始一直更新,我在安全规则中添加了write false,现在更新停止了

只有在更改图片中标记的节点中的数据时,才会出现此问题

用户=>UserId=>forms=>formId

编辑

这是我的云功能:

exports.scheduledFunction = functions.pubsub.schedule('0 0 * * *').onRun((context) => {
    var now = new Date
    admin.database().ref("/forms").orderByKey().once("value",snap=>{snap.forEach(a=>{
      var x =new Date(a.child("endDate").val()).getTime()
      if(x-now<0){
       admin.database().ref('/users/'+a.child("who").val()+"/forms/"+a.key).update({
          update : false
        })
      admin.database().ref('/forms/'+a.key+"/participants/").once("value",c=>c.forEach(uid=>{
          admin.database().ref('/users/'+uid.key+'/participateCamp/'+a.key).remove()
        })).then(()=>admin.database().ref('/forms/'+a.key).remove())
        
      }
          
      }
     )})
 
  return null;
});
exports.scheduledFunction=functions.pubsub.schedule('0***').onRun((上下文)=>{
var now=新日期
admin.database().ref(“/forms”).orderByKey().once(“value”,snap=>{snap.forEach(a=>{
var x=新日期(a.child(“endDate”).val()).getTime()
if(x-nowc.forEach(uid=>{
admin.database().ref('/users/'+uid.key+'/participateCamp/'+a.key).remove()
})).then(()=>admin.database().ref('/forms/'+a.key).remove())
}
}
)})
返回null;
});
还有另一个名为表单的表

打开表单的用户的表单同时添加到表单表和Users=>UserId=>forms=>formId中

已解决

我注意到这个问题是在我更新应用程序中的表单时开始的。更新时,我注意到valueChanges()被触发,我没有取消订阅()


所以问题是由我编写的代码引起的。可能遇到这种问题的朋友会看到它,并注意他们的valueCahnges()方法。

在updateForm函数之前:

updateForm(form : FormGroup,formId){
    firebase.auth().onAuthStateChanged(user=> {
      if (user) {
        this.db.database.ref('/users/'+user.uid).once("value",snap=>{
          
        })
        this.pp = this.db.object('/users/' + user.uid).valueChanges()
        this.pp.forEach(x=>{console.log("neler oluyor")
        this.db.object('/forms/' + formId).update({
           place : form.value.place,
           who : user.uid,
           description:form.value.description,
           startDate : form.value.startDate,
           endDate : form.value.endDate,
           pp : x.pp,
           name : x.name,
           formId : formId,
           chat:{"1":{message:"Form Chat Açıldı!",name:"Sistem"}}
          }).then(x=>this.db.object('/users/'+ user.uid+'/forms/'+formId).update({
            place : form.value.place,
            description:form.value.description,
           startDate : form.value.startDate,
           endDate : form.value.endDate,
           update : true
          })) })
      } else {
        // No user is signed in.
      }
    });
  }
在我修复并解决问题后:

 updateForm(form : FormGroup,formId){
    firebase.auth().onAuthStateChanged(user=> {
      if (user) {
        this.db.database.ref('/users/'+user.uid).once("value",snap=>{
          this.db.object('/forms/' + formId).update({
            place : form.value.place,
            who : user.uid,
            description:form.value.description,
            startDate : form.value.startDate,
            endDate : form.value.endDate,
            pp : snap.child("pp").val(),
            name : snap.child("name").val(),
            formId : formId,
            chat:{"1":{message:"Form Chat Açıldı!",name:"Sistem"}}
           }).then(x=>this.db.object('/users/'+ user.uid+'/forms/'+formId).update({
             place : form.value.place,
             description:form.value.description,
            startDate : form.value.startDate,
            endDate : form.value.endDate,
            update : true
           })) 
        })
      } else {
      }
    });
  }

在updateForm函数之前:

updateForm(form : FormGroup,formId){
    firebase.auth().onAuthStateChanged(user=> {
      if (user) {
        this.db.database.ref('/users/'+user.uid).once("value",snap=>{
          
        })
        this.pp = this.db.object('/users/' + user.uid).valueChanges()
        this.pp.forEach(x=>{console.log("neler oluyor")
        this.db.object('/forms/' + formId).update({
           place : form.value.place,
           who : user.uid,
           description:form.value.description,
           startDate : form.value.startDate,
           endDate : form.value.endDate,
           pp : x.pp,
           name : x.name,
           formId : formId,
           chat:{"1":{message:"Form Chat Açıldı!",name:"Sistem"}}
          }).then(x=>this.db.object('/users/'+ user.uid+'/forms/'+formId).update({
            place : form.value.place,
            description:form.value.description,
           startDate : form.value.startDate,
           endDate : form.value.endDate,
           update : true
          })) })
      } else {
        // No user is signed in.
      }
    });
  }
在我修复并解决问题后:

 updateForm(form : FormGroup,formId){
    firebase.auth().onAuthStateChanged(user=> {
      if (user) {
        this.db.database.ref('/users/'+user.uid).once("value",snap=>{
          this.db.object('/forms/' + formId).update({
            place : form.value.place,
            who : user.uid,
            description:form.value.description,
            startDate : form.value.startDate,
            endDate : form.value.endDate,
            pp : snap.child("pp").val(),
            name : snap.child("name").val(),
            formId : formId,
            chat:{"1":{message:"Form Chat Açıldı!",name:"Sistem"}}
           }).then(x=>this.db.object('/users/'+ user.uid+'/forms/'+formId).update({
             place : form.value.place,
             description:form.value.description,
            startDate : form.value.startDate,
            endDate : form.value.endDate,
            update : true
           })) 
        })
      } else {
      }
    });
  }

如果你认为答案可能对其他用户有用,请将其作为答案发布,而不是作为问题的更新。“就目前的形式而言,我并不确信,因为我感觉我们没有看到导致问题的代码。”弗兰克凡帕夫伦(FrankvanPuffelenı)给出了答案。希望它能帮助其他人。如果你认为答案可能对其他用户有用,请将其作为答案发布,而不是作为问题的更新。“就目前的形式而言,我并不确信,因为我感觉我们没有看到导致问题的代码。”弗兰克凡帕夫伦(FrankvanPuffelenı)给出了答案。希望它能帮助别人。