【发布时间】:2021-10-05 18:03:26
【问题描述】:
我有这样的 firebase(实时数据库)简单结构: 因为键值为“unit no”。
我的输出画面如下: 例如,当搜索单元号“1-2”时,可以列出按单元号过滤的项目。
当尝试点击特定项目的“确认收件人”时,我想从 firebase 中删除唯一的记录。
这是面临的问题:
1) 取消定义“item.unitno”和“item.trakno”的值 2) TypeError: Cannot read property 'unitno' of undefined
html
<ion-row *ngFor="let item of result; let idx = index" class="text-content">
<ion-col class="table-cell" size="3">{{item.unitno}}</ion-col>
<ion-col class="table-cell" size="3">{{item.trackno}}</ion-col>
<ion-col class="table-cell" size="3">{{item.mydate | date: 'yyyy-MM-dd'}}</ion-col>
<button class="btn btn-primary btn-xs" (click)="receiveparcel(item)" size="3">Confirm by recipient</button>
TS
async receiveparcel(item) {
var db = firebase.database().ref('post/');
var query = firebase.database().ref('post/').orderByKey();
query.once("value").then(function(snapshot) {
snapshot.forEach(function(childSnapshot) {
var pkey = childSnapshot.key;
var chval = childSnapshot.val();
//check if remove this child
if(chval.unitno == item.unitno && chval.trackno == item.trackno){
console.log(item.unitno);
console.log(item.trackno);
console.log(pkey);
console.log(chval);
db.child("post/" +pkey).remove();
return true;
}
});
});
}
最新:
抱歉我的错误。忘记保存 html。现在设法解决类型错误。即使单击“receiveparcel”功能,特定的 firebase 记录仍未删除。
修改后: 修改后的结果。没有发现错误但是记录仍然无法删除?
【问题讨论】:
-
在
receiveparcel函数中,尝试记录item并分享输出是什么? -
您好,先生,可以在“最新”下查看我的更新吗?由于 html 的类型错误没有保存.sorry for error。但是记录无法删除```console.log(item.unitno); => 1-2 控制台.log(item.trackno); =>1rurur58588 ```
-
承诺存在一些问题。尝试从我的答案中复制代码并运行它。
标签: typescript firebase ionic-framework firebase-realtime-database