>  Q&A  >  본문

애플리케이션에서 전달된 Firestore 객체를 사용하여 커스텀 npm 패키지에서 Firestore DB를 읽을 수 없습니다.

Firestore 데이터베이스를 사용하는 자체 npm 패키지를 작성하려고 합니다. 애플리케이션에서 전달된 Firestore 객체를 사용하여 패키지에서 클래스를 초기화합니다.

으아아아

패키지에서 함수를 호출하면 await test.getDoc('pathto/doc') 오류가 발생합니다. 未捕获(承诺中)FirebaseError:预计 collection() 的第一个参数是 CollectionReference、DocumentReference 或 FirebaseFirestore

Firestore에서 읽기 위해 Firestore 객체를 초기화하는 다양한 조합을 시도했습니다. firebaseConfig를 사용하여 패키지에서 Firebase 앱을 완전히 초기화하는 경우에만 Firestore에서 데이터를 읽을 수 있지만 상위 앱에서 인증을 상속받지 않고 공개적으로 액세스 가능한 컬렉션만 읽을 수 있습니다.

추가도 해봤습니다 doc(db, documentPath) 传递给包,然后出现错误,提示我可能发生的情况:类型与预期实例不匹配。您是否传递了来自不同 Firestore SDK 的引用?

그래서 내 패키지에서 Firebase를 사용하면 별도의 Firebase SDK 인스턴스가 생성될 것이라고 생각했습니다.

내 앱과 패키지에서 동일한 Firebase 패키지 버전을 사용하고 있으며 Firebase 패키지를 피어 종속성으로 설정했습니다.

내 패키지의 메인 앱에서 초기화된 동일한 Firebase 개체를 원활하게 사용하고 싶습니다.

이를 달성하기 위해 내가 할 수 있는 일이 있다면 누군가 나를 이해하도록 도와줄 수 있나요?

이것은 내 테스트 패키지의 코드입니다.

으아아아

업데이트

로컬 소스에서 패키지를 설치하고 로컬 저장소에 대한 심볼릭 링크를 사용해 보았지만 도움이 되지 않았습니다.

그런 다음 패키지 저장소를 GitHub에 푸시하고 GitHub 저장소를 소스로 사용하여 패키지를 설치했는데 이제 작동합니다.

로컬 소스를 사용할 때 내 패키지는 항상 별도의 Firebase 인스턴스를 사용하는 것 같습니다. 전체 패키지 프로젝트 폴더를 내 애플리케이션 폴더에 넣고 앱과 같은 부분 패키지를 사용하는 것도 도움이 되지 않았습니다.

GitHub에서 설치하는 것은 개발 솔루션이 아니기 때문에 결국 내 앱 프로젝트에 폴더를 만들고 모든 패키지 파일을 마치 내 앱의 일부인 것처럼 배치하게 되었습니다. 편집한 후 패키지 저장소에 복사하겠습니다.

더 나은 해결책이 있는지 모르겠습니다.

업데이트

내 개발 문제를 해결해 주는 패키지relative-deps를 찾았습니다.

P粉064448449P粉064448449405일 전501

모든 응답(1)나는 대답할 것이다

  • P粉080643975

    P粉0806439752023-09-11 09:27:04

    원본 포스터가 질문을 편집하여 질문에 답변했으니까. 이 콘텐츠는 커뮤니티의 인지도를 높이기 위해 게시되었습니다:


    in npm 中,relative-deps은 로컬 패키지나 작업공간 내에서 상대 파일 경로를 사용하여 종속성을 정의할 수 있는 기능을 의미합니다.

    이 기능은 npm 版本 7 中添加的。您可以直接引用项目中的其他包或模块,而不是依赖包名称和 npm 레지스트리에서 사용할 수 있습니다.

    이렇게 하면 특히 단일 저장소나 다수의 상호 연관된 패키지를 사용하는 프로젝트의 경우 개발이 더 쉬워집니다. npm 根据 package.json 파일에 지정된 파일 경로가 확인되고 종속성이 설치됩니다.


    Note: v7 이상으로 시작하는 npm 버전만 이 기능을 지원합니다.

    회신하다
    0
  • 취소회신하다