Javascript 使用Angular firestore返回firebase中的子集合
我有一个称为“另存为嵌套集合”的子集合供每个用户使用。 用户有自己的字段和保存的字段集合,其中包含两个字段和一个数组。我只能显示用户字段,但我不知道访问每个用户子集合的正确方法Javascript 使用Angular firestore返回firebase中的子集合,javascript,firebase,google-cloud-firestore,angularfire2,Javascript,Firebase,Google Cloud Firestore,Angularfire2,我有一个称为“另存为嵌套集合”的子集合供每个用户使用。 用户有自己的字段和保存的字段集合,其中包含两个字段和一个数组。我只能显示用户字段,但我不知道访问每个用户子集合的正确方法 export class SavedComponent implements OnInit{ public saved: Saved[]; public currentUser: any = null; public user: User; private subscriptions: Subscrip
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>
正如Frank van Puffelen所评论的,访问用户子集合的最佳选择是
this.db.collection(`users/${userId}/saved`)
要访问保存的子集合,您需要首先访问用户集合中的用户文档。根据这一点,要访问子集合的文档,可以选择访问集合,然后访问文档,依此类推,以访问子集合或子集合的文档
不能引用集合中的集合或文档中的文档
必须为集合或子集合指定this.db.collection,为集合或子集合的文档指定this.db.doc。this.db.collection`users/${userId}/saved`?我已创建了一个服务,希望在其中访问集合。由于我是新手,我可能会犯一些新手错误。我正在试图弄清楚为什么is说在savedService中找不到userId,因为我已经实现了auth服务和user observable。例如,我试图在savedService中编写代码,为每个用户返回已保存的集合字段。有些地方似乎不清楚:您可以访问用户字段,这意味着您可以使用用户ID查询用户文档,但您无法查询用户的子集合,它会抛出一个找不到的关于用户ID的错误?同时提供您在savedService中使用的代码。如果在userId上找不到我,请阅读我对Frank comment先生的评论。谢谢