javascript - Firebase 更新数据,但几秒钟后将其更改回原始值 "angularFire"

标签 javascript angular firebase firebase-realtime-database angularfire

我正在尝试使用 Angular 和 AngularFire 更新 Firebase 实时数据库上的数据, 数据发生变化,但几秒钟后它又回到原始数据,这是我正在使用的功能。

onSaveDateUpdate(){
    let temp = {
      period:{
        startDate:'',
        endDate:'',
        periodType:''
      },
      updatedTime:("0" +(this.r.getMonth()+1)).slice(-2)+"/"+("0" +this.r.getDate()).slice(-2)+"/"+this.r.getFullYear()+" "+this.r.getHours()+":"+this.r.getMinutes()+":"+this.r.getSeconds()
    };
    var save =this.onEndDateValidator();
    if(save){
      temp.period.startDate = this.datePipe.transform(this.editStartDate,'MM/dd/yyyy');
      temp.period.endDate = this.datePipe.transform(this.editEndDate,'MM/dd/yyyy');
      temp.period.periodType = this.periodType;
      const itemRef = this.db.object(URL );
      this.showDateEdit = !this.showDateEdit;
      itemRef.update(temp).then(() => {
        ... 
      });
    }

最佳答案

此行为通常意味着您的安全规则拒绝写入操作。

当您在应用中执行写入操作时,Firebase 客户端最初会假设写入会成功,并立即触发本地事件。这就是使用 Firebase 时 UI 更新如此之快的原因之一。

在服务器上,数据库根据您的安全规则检查写入操作。如果用户被授权,则允许写入,否则拒绝写入。在这两种情况下,服务器都会将结果通知给客户端。在写入被拒绝的情况下,客户端会确保本地状态得到更新以反射(reflect)服务器状态。本地状态的恢复听起来就像您所看到的那样,如果是由于客户端-服务器距离/延迟造成的延迟是有意义的。

关于javascript - Firebase 更新数据,但几秒钟后将其更改回原始值 "angularFire",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59327354/

相关文章:

Angular 2 - .http - 为什么我需要 .subscribe .map 或 .switchMap 才能使 console.log 正常工作?

Angular 2 ngOnInit 被错误调用两次

android - Firebase android错误-java.util.zip.ZipException:重复的条目:com/google/android/gms/common/api/zzd.class

javascript - 如何处理无法打开流错误,帮助(javascript,ajax)

javascript - 未捕获的 InvalidValueError : initAutocomplete is not a function

javascript - 从同一行获取最接近复选框列的 html 值

javascript - 为什么 Firebase Cloud Function 执行定义的 Promise

java - 在 html 中显示 sqlite 数据库查询

angular - 如何以编程方式关注下拉菜单

javascript - Firebase onAuthStateChange 登录时触发两次