angular - Ionic3、Angular 和 Firebase 从 db 获取
问题描述
在聊天应用程序上工作。将消息推送到数据库工作正常,但获取查询似乎不起作用。
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>
解决方案
您还必须订阅您的列表。
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');
}
推荐阅读
- angular - 自动完成不会填充从 Spring Boot API 服务检索到的数据
- python - 如何在 Python 中用 np.linalg.norm 替换 scipy.spatial.distance
- java - 将 cxf-spring-boot-starter-jaxrs WebClient 与 TLS 一起使用会产生证书未知错误
- performance - 可以在 Google Cloud Platform 上运行的“perf”替代性能管理工具
- snowflake-cloud-data-platform - 更改 Snowflake 中已删除表的数据保留
- c - 为什么 Windows Defender 将编译的 C 可执行文件检测为病毒?
- javascript - 类型错误:Vue.js 中的“_vm.KisanData 未定义”
- r - Reticulate 找不到 Anaconda 安装
- swift - 如何使 CAshapeLayer 适合按钮?
- javascript - 我可以使用哪种图表来使用 ChartJS(或类似的)来实现这一点?