停止关注焦点更新

时间:2019-07-19 18:09:40

标签: javascript firebase ionic-framework firebase-realtime-database ionic3

我正在设计一个聊天应用程序,因此当他的通讯员告诉他他的通讯员已阅读该消息时会收到通知;为此,我的消息包含三个属性:消息,状态(假或真),发送者,时间戳。 默认情况下,发送消息时,状态为false。当其匹配将焦点放在消息编写区域时,状态将更改为true。 问题在于,此后状态不会恢复为false,而是保持不变。 需要帮助

这是我在服务上的代码

enter code here
    if (firebase.auth().currentUser) {
      var promise = new Promise((resolve, reject) => {
        let temp;
        this.firebuddychats.child(firebase.auth().currentUser.uid)
          .child(this.buddy.uid).orderByChild("status")
          .equalTo(false).on('value', (snapshot) => {
            temp = snapshot.val()
            console.log(temp)
            for (var tempkey in temp) {
              let t= JSON.parse(JSON.stringify(temp[tempkey]))
              if(t!=null){
                this.firebuddychats
                  .child(firebase.auth().currentUser.uid)
                  .child(this.buddy.uid)
                  .child(tempkey).update({
                    status: true
                  }).then((d) => {
                    this.countnotreadmessages(this.buddy.uid)
                    console.log("test 1", t)
                    resolve({ success: true })
                  })
                  .catch((err) => {
                    reject(err)
                })
              }

            }
        })
      })
      return promise;
    }
  }

这是我在控制器中的代码

hasread(){
      this.chatService.updateStatusMessage().then((data)=>{
          console.log("data :",data)
      })
  }

这是我的html页面

<ion-toolbar class="no-border" color="white">
    <ion-input [(ngModel)]="newmessage" placeholder="Saisir votre message ..." (ionFocus)="hasread()"></ion-input>  
    <ion-buttons end>
      <button ion-button (click)="addmessage()">
        <ion-icon name="send" color="primary"></ion-icon>
      </button>
    </ion-buttons>
  </ion-toolbar>

这是我要添加消息的代码

addnewmessage(msg){
    if(this.buddy){
      var promise = new Promise((resolve, reject)=>{
        this.firebuddychats.child(firebase.auth().currentUser.uid)
        .child(this.buddy.uid)
        .push()
        .set({
          sentby:firebase.auth().currentUser.uid,
          message:msg,
          status: true,
          timestamp:firebase.database.ServerValue.TIMESTAMP
        }).then(()=>{
          this.firebuddychats.child(this.buddy.uid).child(firebase.auth().currentUser.uid)
          .push()
          .set({
            sentby: firebase.auth().currentUser.uid,
            message: msg,
            status:false,
            timestamp: firebase.database.ServerValue.TIMESTAMP
          }).then((data)=>{
            console.log(data)
            this.countnotreadmessages(this.buddy.uid)
            resolve(true)
          }).catch((err)=>{
            reject(err)
          })
        })
      })
    }
    return promise;
  }

它将所有状态更改为true,并发送状态保持为true的每条消息

0 个答案:

没有答案