AngularFire Firestore 属性 'map' 在类型 'Action<DocumentSnapshot<any>>' 上不存在
AngularFire Firestore Property 'map' does not exist on type 'Action<DocumentSnapshot<any>>'
我正在关注有关集合的 firebase docs,但无法弄清楚为什么我的代码在尝试检索具有文档 ID 的文档集合时无法按照文档工作。
我的 IDE 显示以下错误:
Property 'map' does not exist on type 'Action< DocumentSnapshot< any>>'.
对于以下代码:
this.userDocRef = this.afs.doc<any>(`users/${user.uid}`);
this.userDoc$ = this.userDocRef.snapshotChanges().pipe(
map(actions => {
return actions.map(a => { // error throws here
const data = a.payload.doc.data() as any;
const id = a.payload.doc.id;
return { id, ...data };
})
})
)
当我 运行 此代码时,出现以下错误:
ERROR TypeError: actions.map is not a function
如何重构它以使其正常工作?
"firebase": "^5.0.4"
"@angular/core": "^6.1.0"
"angularfire2": "^5.0.0-rc.10"
您的映射代码有误:
map(actions => {
return actions.map(a => { // error throws here
const data = a.payload.doc.data() as any;
const id = a.payload.doc.id;
return { id, ...data };
})
})
这用于映射集合。您不是在迭代一个集合,而是在单个文档
尝试:
this.userDoc$ = this.userDocRef.snapshotChanges()
.pipe(
map(action => {
const data = action.payload.data();
const id = action.payload.id;
return { id, ...data };
})
);
我正在关注有关集合的 firebase docs,但无法弄清楚为什么我的代码在尝试检索具有文档 ID 的文档集合时无法按照文档工作。
我的 IDE 显示以下错误:
Property 'map' does not exist on type 'Action< DocumentSnapshot< any>>'.
对于以下代码:
this.userDocRef = this.afs.doc<any>(`users/${user.uid}`);
this.userDoc$ = this.userDocRef.snapshotChanges().pipe(
map(actions => {
return actions.map(a => { // error throws here
const data = a.payload.doc.data() as any;
const id = a.payload.doc.id;
return { id, ...data };
})
})
)
当我 运行 此代码时,出现以下错误:
ERROR TypeError: actions.map is not a function
如何重构它以使其正常工作?
"firebase": "^5.0.4"
"@angular/core": "^6.1.0"
"angularfire2": "^5.0.0-rc.10"
您的映射代码有误:
map(actions => {
return actions.map(a => { // error throws here
const data = a.payload.doc.data() as any;
const id = a.payload.doc.id;
return { id, ...data };
})
})
这用于映射集合。您不是在迭代一个集合,而是在单个文档
尝试:
this.userDoc$ = this.userDocRef.snapshotChanges()
.pipe(
map(action => {
const data = action.payload.data();
const id = action.payload.id;
return { id, ...data };
})
);