Closed kahirokunn closed 5 years ago
実行環境 react native expo
事前知識 firebase js sdkを直接使う場合にはエラーは発生しない
本文
undefined is not an object(evaluating 'firebase.firestore.CollectionReference')
ってエラーが出ます。
該当ファイルはこちらです。
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const firebase = require("firebase"); /* * Class */ const Codable_1 = require("./Codable"); exports.Codable = Codable_1.Codable; const Field_1 = require("./Field"); exports.Field = Field_1.Field; const File_1 = require("./File"); exports.File = File_1.File; const SubCollection_1 = require("./SubCollection"); exports.SubCollection = SubCollection_1.SubCollection; const Model_1 = require("./Model"); exports.Model = Model_1.Model; const Document_1 = require("./Document"); exports.Doc = Document_1.Doc; const Collection_1 = require("./Collection"); exports.Collection = Collection_1.Collection; const Batch_1 = require("./Batch"); exports.Batch = Batch_1.Batch; exports.initialize = (appFirestore, root) => { exports.firestore = appFirestore; exports.rootReference = root || exports.firestore; }; exports.CollectionReference = firebase.firestore.CollectionReference; exports.DocumentReference = firebase.firestore.DocumentReference; exports.DocumentSnapshot = firebase.firestore.DocumentSnapshot; exports.FieldPath = firebase.firestore.FieldPath; exports.FieldValue = firebase.firestore.FieldValue; exports.Firestore = firebase.firestore.Firestore; exports.GeoPoint = firebase.firestore.GeoPoint; exports.Query = firebase.firestore.Query; exports.QueryDocumentSnapshot = firebase.firestore.QueryDocumentSnapshot; exports.QuerySnapshot = firebase.firestore.QuerySnapshot; exports.Timestamp = firebase.firestore.Timestamp; exports.Transaction = firebase.firestore.Transaction; exports.WriteBatch = firebase.firestore.WriteBatch; //# sourceMappingURL=index.js.map
ここのrequire("firebase");にconsole.logを直接仕組むとこういう結果になります。
Object { "INTERNAL": Object { "ErrorFactory": [Function ErrorFactory], "createFirebaseNamespace": [Function createFirebaseNamespace], "createSubscribe": [Function createSubscribe], "deepExtend": [Function deepExtend], "extendNamespace": [Function extendNamespace], "factories": Object { "auth": [Function anonymous], "database": [Function anonymous], "storage": [Function factory], }, "reactNative": Object { "AsyncStorage": Object { "_getKeys": Array [], "_getRequests": Array [], "_immediate": null, "clear": [Function clear], "flushGetRequests": [Function flushGetRequests], "getAllKeys": [Function getAllKeys], "getItem": [Function getItem], "mergeItem": [Function mergeItem], "multiGet": [Function multiGet], "multiMerge": [Function multiMerge], "multiRemove": [Function multiRemove], "multiSet": [Function multiSet], "removeItem": [Function removeItem], "setItem": [Function setItem], }, }, "registerService": [Function registerService], "removeApp": [Function removeApp], "useAsService": [Function useAsService], }, "SDK_VERSION": "6.0.4", "User": [Function P], "__esModule": true, "app": [Function app], "apps": Array [], "auth": [Function serviceNamespace], "database": [Function serviceNamespace], "default": [Circular], "initializeApp": [Function initializeApp], "storage": [Function serviceNamespace], }
確かにfirestoreがないです。
自身のアプリケーションの方でconsole.log(require("firebase"))をすると、以下の結果がでます。
Object { "INTERNAL": Object { "ErrorFactory": [Function ErrorFactory], "createFirebaseNamespace": [Function createFirebaseNamespace], "createSubscribe": [Function createSubscribe], "deepExtend": [Function deepExtend], "extendNamespace": [Function extendNamespace], "factories": Object { "auth": [Function anonymous], "database": [Function anonymous], "firestore": [Function anonymous], "storage": [Function factory], }, "reactNative": Object { "AsyncStorage": Object { "_getKeys": Array [], "_getRequests": Array [], "_immediate": null, "clear": [Function clear], "flushGetRequests": [Function flushGetRequests], "getAllKeys": [Function getAllKeys], "getItem": [Function getItem], "mergeItem": [Function mergeItem], "multiGet": [Function multiGet], "multiMerge": [Function multiMerge], "multiRemove": [Function multiRemove], "multiSet": [Function multiSet], "removeItem": [Function removeItem], "setItem": [Function setItem], }, }, "registerService": [Function registerService], "removeApp": [Function removeApp], "useAsService": [Function useAsService], }, "SDK_VERSION": "6.0.4", "User": [Function P], "__esModule": true, "app": [Function app], "apps": Array [], "auth": [Function serviceNamespace], "database": [Function serviceNamespace], "default": [Circular], "firestore": [Function serviceNamespace], "initializeApp": [Function initializeApp], "storage": [Function serviceNamespace], }
firestoreがあります。
一応症状が確認できるリポジトリがこちらになります https://github.com/kahirokunn/expo-ballcap
Please insert this your App.tsx
import '@firebase/firestore'
実行環境 react native expo
事前知識 firebase js sdkを直接使う場合にはエラーは発生しない
本文
ってエラーが出ます。
該当ファイルはこちらです。
ここのrequire("firebase");にconsole.logを直接仕組むとこういう結果になります。
確かにfirestoreがないです。
自身のアプリケーションの方でconsole.log(require("firebase"))をすると、以下の結果がでます。
firestoreがあります。