为什么映射条件 return 总是值
why map with condition return always value
我正在使用 rxjs 映射来检索 firestore 中的数据,如下所示:
getArtists(): Observable<DocumentData> {
const users$ = this.firestore.collection('/Users').get()
users$.subscribe((users) => {
users.docs.map(user => user.data().artistName !== "" && user.data().role === 'ARTIST')
});
return users$;
}
但是当我得到这样的价值时:
this.userService.getArtists().subscribe(
(userDocs) => {
userDocs.docs.map((user) => {
this.artists.push(user.data());
console.log(this.artists)
this.record = this.artists.length;
})
});
当 artistName 等于 ""
且角色不等于 'ARTIST'
时,它总是 return 用户。
为什么?
谢谢大家!
您需要将数据映射到 map
运算符而不是 subscription
和 return 中作为管道的值。
不幸的是,在您的代码中不清楚您想要过滤什么以及何时过滤,为什么 user
在 users.docs
中,而它往往是 doc
.
请检查下面的示例并考虑使用更多信息更新您的问题。
import {filter, map} from 'rxjs/opreators';
getArtists(): Observable<DocumentData> {
return this.firestore.collection('/Users').get().pipe( // <- use pipe
map(users => {
// here some changes in users if we need.
return users;
}),
),
filter(users => {
returns true; // or false if we don't want to emit this value.
}),
}
我正在使用 rxjs 映射来检索 firestore 中的数据,如下所示:
getArtists(): Observable<DocumentData> {
const users$ = this.firestore.collection('/Users').get()
users$.subscribe((users) => {
users.docs.map(user => user.data().artistName !== "" && user.data().role === 'ARTIST')
});
return users$;
}
但是当我得到这样的价值时:
this.userService.getArtists().subscribe(
(userDocs) => {
userDocs.docs.map((user) => {
this.artists.push(user.data());
console.log(this.artists)
this.record = this.artists.length;
})
});
当 artistName 等于 ""
且角色不等于 'ARTIST'
时,它总是 return 用户。
为什么?
谢谢大家!
您需要将数据映射到 map
运算符而不是 subscription
和 return 中作为管道的值。
不幸的是,在您的代码中不清楚您想要过滤什么以及何时过滤,为什么 user
在 users.docs
中,而它往往是 doc
.
请检查下面的示例并考虑使用更多信息更新您的问题。
import {filter, map} from 'rxjs/opreators';
getArtists(): Observable<DocumentData> {
return this.firestore.collection('/Users').get().pipe( // <- use pipe
map(users => {
// here some changes in users if we need.
return users;
}),
),
filter(users => {
returns true; // or false if we don't want to emit this value.
}),
}