【发布时间】:2019-10-24 17:36:05
【问题描述】:
我有一个子集合,称为保存为每个用户的嵌套集合。 用户有自己的字段和保存的集合,其中包含两个字段和一个数组。我只能显示用户字段,但我不知道访问每个用户子集合的正确方法。
export class SavedComponent implements OnInit{
public saved: Saved[];
public currentUser: any = null;
public user: User;
private subscriptions: Subscription[] = [];
constructor(
// Adding saved service
private savedService: SavedService,
private auth: AuthService,
private loadingService: LoadingService,
private route: ActivatedRoute,
private db: AngularFirestore
) {
// this.loadingService.isLoading.next(true);
}
this.subscriptions.push(
this.auth.currentUser.subscribe( user => {
this.currentUser = user;
this.loadingService.isLoading.next(false);
// Console log the current authentiucated user
console.log(this.currentUser);
})
);
this.subscriptions.push(
this.route.paramMap.subscribe( params => {
const userId = params.get('userId');
const userRef: AngularFirestoreDocument<User> = this.db.doc(`users/${userId}`);
userRef.valueChanges().subscribe(user => this.user = user);
})
)
// Example of html template
<div class="row justify-content-center">
<div class="col-xs-12 col-sm-8 col-md-6 text-center name">
{{user?.firstName}} {{user?.lastName}}
</div>
</div>
【问题讨论】:
-
this.db.collection(`users/${userId}/saved`)? -
我创建了一个服务,我想在其中访问该集合。由于我是 Angular 的新手,我可能会犯一些新手错误。我试图弄清楚为什么说在 savedService 中找不到 userId,因为我已经实现了我的身份验证服务和用户可观察。例如,我正在尝试在 savedService 中编写代码,该代码将为每个用户返回已保存的集合字段。
-
有些事情似乎不清楚:您可以访问用户字段,这意味着您可以使用 userId 查询用户的文档,但是您无法查询用户的子集合,并且它会引发关于无法找到的 userId 的错误?还要提供您在 savedService 中使用的代码。
标签: javascript firebase google-cloud-firestore angularfire2