【问题标题】:Ionic3, angular & firebase get from dbIonic 3、angular 和 firebase 从 db 获取
【发布时间】:2018-06-20 01:51:05
【问题描述】:

正在开发聊天应用程序。将消息推送到数据库可以正常工作,但获取查询似乎不起作用。

ts 文件看起来像这样,发送消息工作推送到数据库,工作正常。 获取消息不起作用。

ngOnInit(){
  this.encryptedMessages = this.getMessage();
}

getMessage(){
  return this.db.list('/messenger');
}

sendMessage(){
  this.db.list("/messenger").push({
  username: this.username,
  message: this.message
 }).then(()=>{
  //what happens once message is sent
 });
}

html 看起来像这样。使用 *ngFor 和异步管道显示从数据库检索到的所有消息。屏幕上什么都没有呈现

<ion-content padding>
  <div id="message" *ngFor="let m of encryptedMessages | async">
    <div class="username">{{ m.username }}</div>
    <div class="message"> {{ m.message }} </div>
  </div>
</ion-content>

【问题讨论】:

    标签: angular firebase firebase-realtime-database ionic3 angularfire2


    【解决方案1】:

    您还必须订阅您的列表。

    ngOnInit(){
      this.getMessage().snapshotChanges()
        .subscribe((actions) => {
           this.encryptedMessages = actions.map((action) => {
              const data = action.payload.val();
              data.key = action.key;
              return data;
           });
        });
    }
    
    getMessage(){
      return this.db.list('/messenger');
    }
    

    【讨论】:

    • 这给了我一个“对象不是函数”。我的 html 文件中的 asyn 管道不应该处理这个问题吗?
    猜你喜欢
    • 1970-01-01
    • 2018-09-29
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多