国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Tidak dapat membaca Firestore DB daripada pakej npm tersuai menggunakan objek Firestore yang diluluskan daripada aplikasi
P粉064448449
P粉064448449 2023-09-10 19:49:11
0
1
751

Saya cuba menulis pakej npm saya sendiri yang menggunakan pangkalan data Firestore. Saya memulakan kelas daripada pakej menggunakan objek Firestore yang diluluskan daripada aplikasi:

import { firestoreTest } from 'my-package'

const app = initializeApp(firebaseConfig)
const db = getFirestore(app)
const test = new firestoreTest(db)

Apabila saya memanggil fungsi dari pakej await test.getDoc('pathto/doc') Saya mendapat ralat: 未捕獲(承諾中)FirebaseError:預(yù)計 collection() 的第一個參數(shù)是 CollectionReference、DocumentReference 或 FirebaseFirestore

Saya mencuba kombinasi berbeza untuk memulakan objek Firestore untuk membaca daripada Firestore. Hanya apabila saya memulakan sepenuhnya apl Firebase dalam pakej menggunakan firebaseConfig saya boleh membaca data daripada Firestore, tetapi kemudian saya tidak mewarisi pengesahan daripada apl induk dan hanya boleh membaca koleksi yang boleh diakses secara umum.

Saya pun cuba menambah doc(db, documentPath) 傳遞給包,然后出現(xiàn)錯誤,提示我可能發(fā)生的情況:類型與預(yù)期實例不匹配。您是否傳遞了來自不同 Firestore SDK 的引用?

Jadi saya fikir menggunakan Firebase daripada pakej saya akan membuat tika Firebase SDK yang berasingan.

Saya menggunakan versi pakej firebase yang sama dalam apl dan pakej saya dan juga menetapkan firebase pakej sebagai kebergantungan rakan sebaya.

Saya mahu menggunakan objek Firebase yang sama dengan lancar dalam apl utama pakej saya.

Bolehkah seseorang membantu saya memahami jika ada sesuatu yang boleh saya lakukan untuk mencapai ini?

Ini adalah kod daripada pakej ujian saya.

export class firestoreTest {
  private db: Firestore
  private app: FirebaseApp
  private dbFromApp: Firestore
  private localApp: FirebaseApp
  private localDb: Firestore

  constructor(firebaseConfig: FirebaseOptions, app: FirebaseApp, db: Firestore) {
    this.db = db
    this.app = app

    this.dbFromApp = getFirestore(app)

    this.localApp = initializeApp(firebaseConfig)
    this.localDb = getFirestore(this.localApp)
  }

  public async getDoc(docPath: string, ref?: DocumentReference<DocumentData, DocumentData>) {
    /* Reads data, but without authenticated user context */
    /* Uncaught (in promise) FirebaseError: Missing or insufficient permissions. */
    // const data = await getDoc(doc(this.localDb, docPath).withConverter(converter<any>()))

    /* Uncaught (in promise) FirebaseError: Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore */
    // const data = await getDoc(doc(this.dbFromApp, docPath).withConverter(converter<any>()))

    /* Uncaught (in promise) FirebaseError: Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore */
    const data = await getDoc(doc(this.db, docPath).withConverter(converter<any>()))

    /* Uncaught (in promise) FirebaseError: Type does not match the expected instance. Did you pass a reference from a different Firestore SDK? */
    // const data = ref && (await getDoc(ref.withConverter(converter<any>())))

    console.log(data?.data())
  }
}

Kemas kini

Saya cuba memasang pakej daripada sumber tempatan dan menggunakan symlinks ke repositori tempatan saya, tetapi itu tidak membantu.

Kemudian saya menolak repositori pakej saya ke GitHub dan memasang pakej menggunakan repositori GitHub sebagai sumber dan kini ia berfungsi.

Nampaknya apabila menggunakan sumber tempatan, pakej saya sentiasa menggunakan tika Firebase yang berasingan. Meletakkan keseluruhan folder projek pakej ke dalam folder aplikasi saya dan menggunakan pakej separa seperti aplikasi juga tidak membantu.

Memasang daripada GitHub bukanlah penyelesaian pembangunan, jadi saya akhirnya mencipta folder dalam projek apl saya dan meletakkan semua fail pakej di dalamnya seolah-olah ia sebahagian daripada apl saya. Selepas mengeditnya, saya akan menyalin ke repositori pakej.

Tidak tahu jika ada penyelesaian yang lebih baik.

Kemas kini

Saya jumpa pakej relative-deps yang menyelesaikan masalah perkembangan saya.

P粉064448449
P粉064448449

membalas semua(1)
P粉080643975

Memandangkan poster asal menjawab soalannya dengan menyunting soalan. Kandungan ini disiarkan untuk meningkatkan kesedaran masyarakat:


dalam npm 中,relative-deps merujuk kepada ciri yang membolehkan anda menentukan kebergantungan menggunakan laluan fail relatif dalam pakej tempatan atau ruang kerja.

Ciri ini tersedia dalam npm 版本 7 中添加的。您可以直接引用項目中的其他包或模塊,而不是依賴包名稱和 npm pendaftaran. p>

Ini menjadikan pembangunan lebih mudah, terutamanya untuk projek yang menggunakan monorepos atau sejumlah besar pakej yang saling berkaitan. npm 根據(jù) package.json Laluan fail yang dinyatakan dalam fail diselesaikan dan kebergantungan dipasang.


Nota: Hanya versi npm bermula dengan v7 dan ke atas menyokong ciri ini.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan