1amageek / pring.ts

Cloud Firestore model framework for TypeScript - Google
https://firebase.google.com/docs/firestore/
MIT License
108 stars 7 forks source link

An Error occurred when `ReferenceCollection.insert()`. #23

Closed starhoshi closed 6 years ago

starhoshi commented 6 years ago

Error

    There must be only one transform for every document, and transform must be after all other operations on the document.

Code

export class Fuga extends Pring.Base {
  @property name: string = 'fuga'
}

export class Hoge extends Pring.Base {
  @property name: string = 'hoge'
  @property fugas: Pring.ReferenceCollection<Fuga> = new Pring.ReferenceCollection(this)
}

export class ExtendedHoge extends Hoge {
  @property name: string = 'extendedhoge'
  @property fugas: Pring.ReferenceCollection<Fuga> = new Pring.ReferenceCollection(this)
}

---

const fuga = new Model.Fuga()

const extendedHoge = new ExtendedHoge()
extendedHoge.fugas.insert(fuga)
await extendedHoge.save() // error!

継承した Model で insert を使うとエラーが起きるようです。

1amageek commented 6 years ago

継承はPringでもpring.tsでもサポートしていません。

starhoshi commented 6 years ago

そうなんですね、知らなかった...。 interface を使うようにします。