首页 > 解决方案 > 无法读取未定义的 ember 和 firebase 的属性“类型”

问题描述

我正在尝试使用 ember.js 和 emberfire 从我的 Firestore 中检索数据。

我有一个简单的电影数据库。现在里面只有一个文档,但由于某种原因,当我尝试检索数据时,我不断收到“无法读取未定义的属性'类型'”!我知道这是一个 JSONAPI 问题,但似乎没有任何解决办法。

我的路线:

import Route from '@ember/routing/route';

export default class MovieRoute extends Route {
  async model() {
    this.store.findAll('movies').then(function(movie) {
      console.log(movie);
    });
  }
}

我的模型:

import Model, { attr } from '@ember-data/model';

export default class MoviesModel extends Model {
  @attr('string') title;

}

现在我的理解是默认的 JSONAPISerializer 是默认的,但我还是尝试添加一个序列化器,我的错误更改为:断言失败:normalizeResponse 必须返回一个有效的 JSON API 文档。

我的适配器:

import FirestoreAdapter from 'emberfire/adapters/firestore';

export default FirestoreAdapter.extend({
  // Uncomment the following lines to enable offline persistence and multi-tab support
  // enablePersistence: true,
  // persistenceSettings: { synchronizeTabs: true },
});

我的序列化器:

import JSONAPISerializer from '@ember-data/serializer/json-api';

export default class ApplicationSerializer extends JSONAPISerializer {}

我也理解接受 JSON 的方式是:

{
  data {
    type: 'movies',
    id: 1,
    attributes {
      title: 'ghostbusters'
    }
  }
}

所以我还在firestore中创建了一个新文档,格式相同。仍然没有运气。

谁能指出我正确的方向,如何从 Firestore 返回正确的数据?

**编辑——

错误信息:

在此处输入图像描述

标签: google-cloud-firestoretypesember.jsemberfire

解决方案


推荐阅读