参数不能分配给CollectionReference错误。严格遵循AngularFire2 docs

时间:2019-03-28 18:18:33

标签: google-cloud-firestore angularfire2

我正在关注AngularFire2上的文档,并且难以诊断错误。我正在尝试查询集合。

我希望我能做的就是在线文档中显示的内容。

import { Component } from '@angular/core';

import { AngularFirestore, AngularFirestoreCollection } from '@angular/fire/firestore';

import { Observable } from 'rxjs';

export interface Item { name: string; }

@Component({
  selector: 'app-root',
  template: `
    <ul>
      <li *ngFor="let item of items | async">
        {{ item.name }}
      </li>
    </ul>
  `
})
export class TestService {
  private itemsCollection: AngularFirestoreCollection<Item>;
  items: Observable<Item[]>;
  constructor(private afs: AngularFirestore) {
    this.itemsCollection = afs.collection<Item>('items', ref => {

    });
    this.items = this.itemsCollection.valueChanges();
  }
  addItem(item: Item) {
    this.itemsCollection.add(item);
  }
} 

如果我愿意:

db.collection('Items')可以正常工作,只是在尝试添加对“ Items”参数开始失败的查询时。

1 个答案:

答案 0 :(得分:0)

对此表示抱歉。我想到了。我直接使用了第一页文档中的代码,但是输入了下一部分(一行代码)来添加查询。我假设第二个参数是一个回调,因此包含了{},这在示例中没有。

我得到的错误是“类型'Users'的参数不能分配为'CollectionReference'类型的参数”。引发我的是'Users'的错误...因为没有类型'Users'(这是一个字符串的路径...正确)。

所以我的代码应该是:

this.db.collection('Users',ref => ref.where('item','==','whatever')

不是:

this.db.collection('Users',ref => {ref.where('item','==','whatever')}

将此文件提交到#moron下:)