Аргумент не может быть назначен ошибке CollectionReference. Следуя документам AngularFire2 точно - PullRequest
0 голосов
/ 28 марта 2019

Я слежу за документацией по 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 голосов
/ 29 марта 2019

Извините за это. Я понял. Я использовал код прямо из документов на первой странице, но набрал следующую часть (одну строку кода), чтобы добавить запрос. Я предположил, что вторым параметром был обратный вызов, и поэтому он включает {}, чего нет в примере.

Ошибка, которую я получил, была: «Аргумент типа« Пользователи »не может быть назначен для типа« CollectionReference »». То, что бросило меня, было ошибкой «Пользователи» ... так как нет типа «Пользователи» (это путь, который является строкой ... и правильный).

Итак, мой код должен быть:

this.db.collection («Пользователи», ref => ref.where («элемент», «==», «что угодно»)

Не

this.db.collection ('Users', ref => {ref.where ('item', '==', 'независимо от')}

подайте это под #moron:)

...