1amageek / pring.ts

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

`Base.get<T extends Base>(id: String)` not working #7

Closed starhoshi closed 6 years ago

starhoshi commented 6 years ago
export class Cart extends Pring.Base {
  user: FirebaseFirestore.DocumentReference
  stripeCardID: string
  cartSKUs: Pring.NestedCollection<CartSKU> = new Pring.NestedCollection(this)
  defaultAddress?: FirebaseFirestore.DocumentReference
}
    const cart = new Cart()
    cart.stripeCardID = 'cardID'
    await cart.save()

    const pringCart = await Cart.get<Firebase.Cart>(cartID)
    console.log(pringCart.stripeCardID)  // => undefined

    const cartData = await admin.firestore().doc('/version/1/cart/' + cartID).get().then(s => s.data())
    console.log(cartData.stripeCardID) // => cardID

await Cart.get<Firebase.Cart>(cartID) で取得したデータにアクセスできませんでした。

L61 では snapshot.data() でデータを参照できたので、実際にはデータが取得できているものの、その次の init(snapshot: FirebaseFirestore.DocumentSnapshot): void; でデータを正常にセットできていないようです。