Expo apk 构建在显示闪屏后崩溃。将我的设备连接到 android studio 的 logcat 我看到日志说
“致命异常:mqt_native_modules”
com.facebook.react.common.JavascriptException:FirebaseError:Firebase:错误(auth/invalid-api-key)。
我使用“firebase”:“^9.9.3”(sdk)
api-key 的值位于 .env 文件中,然后位于 mi app.config.js expo -> extra ->
"apiKey": process.env.APIKEY,
"authDomain": process.env.AUTHDOMAIN,
"projectId": process.env.PROJECTID,
"storageBucket": process.env.STORAGEBUCKET,
"messagingSenderId": process.env.MESSAGINGSENDERID,
"appId": process.env.APPID,
"measurementId": process.env.MEASUREMENTID
当我与世博会一起运行时,一切都很好,没有崩溃。我用模拟器进行了开发构建和测试,也可以工作。
当崩溃时 logcat 不执行 console.log(firebaseConfig) 所以我看不到这些值。
我还认为问题是否出在 expo.dev(FCM V1 服务帐户密钥)中的凭据,但我尝试修改和更新 .env 中的值,但它也不起作用。
我的 firebase.js
import { initializeApp } from "firebase/app";
import { getAuth } from "firebase/auth";
import { getFirestore } from "firebase/firestore";
import Constants from "expo-constants";
// https://firebase.google.com/docs/web/setup#available-libraries
// For Firebase JS SDK v7.20.0 and later, measurementId is optional
const firebaseConfig = {
apiKey: Constants.expoConfig.extra.apiKey || '',
authDomain: Constants.expoConfig.extra.authDomain || '',
projectId: Constants.expoConfig.extra.projectId || '',
storageBucket: Constants.expoConfig.extra.storageBucket || '',
messagingSenderId: Constants.expoConfig.extra.messagingSenderId || '',
appId: Constants.expoConfig.extra.appId || '',
measurementId: Constants.expoConfig.extra.measurementId || ''
};
// Initialize Firebase
console.log(firebaseConfig);
const app = initializeApp(firebaseConfig);
// Initialize Firebase services
const database = getFirestore(app);
const auth = getAuth(app);
const firebaseServices = { database, auth };
export default firebaseServices;
我的.env(位于根目录中)
URL_BACK=xxx
APIKEY=xxx
AUTHDOMAIN=xxx
PROJECTID=xxx
STORAGEBUCKET=xxx
MESSAGINGSENDERID=xxx
APPID=xxx
MEASUREMENTID=xx
这是我的eas.json
{
"build": {
"development": {
"android": {
"buildType": "apk",
"developmentClient": true,
"gradleCommand": ":app:assembleDebug"
}
},
"preview": {
"android": {
"buildType": "apk"
}
},
"preview2": {
"android": {
"gradleCommand": ":app:assembleRelease"
}
},
"production": {
"android": {
"buildType": "apk"
}
}
}
}
developmentClient: true
和 buildType: "apk"
,然后构建该配置文件。npx expo start
)console.log()
语句现在都将显示在 Expo 控制台中。console.log()
以查看 firebaseConfig
中的值是否是您在调用 initializeApp(firebaseConfig)
我敢打赌,这些价值观并不是你所期望的那样。 API 密钥值可能不正确(我猜它们是
undefined
),它映射到您收到的特定错误消息(“invalid-api-key”)。