【发布时间】:2020-12-16 08:26:05
【问题描述】:
大家好,我正在学习 Angular 和 Firebase。所以我的想法是我从我的票集合中获取一些票,并在获取后在其中添加一些新属性,但问题是当我收到一半数据时,我的排序函数调用(负责添加属性的函数)。或者简单地说,我们可以说我以流的形式接收数据。
get_ticket() {
console.log('have permission');
this.get_ticket_service
.get_ticket_company(this.user.company)
.subscribe((res) => {
console.log('get response');
this.unStructure_ticket = res.map((e) => {
return {
id: e.payload.doc.id,
item: e.payload.doc.data(),
};
});
this.odering_ticket(this.unStructure_ticket)
});
排序函数
odering_ticket(data) {
const info = [];
console.log('hi');
data.map((ticket) => {
if (ticket.item.seen == false) {
ticket.item.ticketID = ticket.id;
ticket.item.ticketType = 'new';
info.push(ticket.item);
} else if (
ticket.item.new == true &&
ticket.item.currently_handle_sme_ID == undefined
) {
ticket.item.ticketID = ticket.id;
ticket.item.ticketType = 'not assigned';
info.push(ticket.item);
} else if (
ticket.item.currently_handle_sme_ID == localStorage.getItem('uid') &&
!this.has_view_all_ticket_permission
) {
ticket.item.ticketID = ticket.id;
ticket.item.ticketType = 'assigned';
info.push(ticket.item);
} else if (
ticket.item.currently_handle_sme_ID != undefined &&
this.has_view_all_ticket_permission
) {
ticket.item.ticketID = ticket.id;
ticket.item.ticketType = 'assigned';
info.push(ticket.item);
}
});
console.log('end map');
return info;
}
service.ts
get_ticket_company(company) {
return this.firebase_store
.collection('Ticket', (ref) => ref.where('company', '==', company))
.snapshotChanges();
}
输出
有权限, 得到回应, 你好 , 结束地图, 得到回应, 你好 , 结束地图,
我想在收到所有数据后调用我的排序函数
【问题讨论】:
-
在
get_ticket_company返回的可观察对象完成后,您已经在调用odering_ticket。get_ticket_company会发出多次吗? -
是的,两次排序函数调用
标签: javascript angular firebase google-cloud-firestore angularfire2