显示启动画面后,Expo apk 构建崩溃。将我的设备连接到 android studio 的 logcat 后,我看到日志显示“致命异常:mqt_native_modules”com.facebook.react.common。
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
当我使用 expo go 运行时,一切运行良好,没有崩溃。我进行了开发构建并使用模拟器进行了测试,结果也运行正常。
当崩溃时,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()
您的 JS 代码中的任何语句现在都将显示在 Expo 控制台中。
console.log()
,看看你的值是否 firebaseConfig
符合你在调用之前所期望的值 initializeApp(firebaseConfig)
我敢打赌,这些值可能不是您所期望的。API 密钥值可能不正确(我猜是的 undefined
),这与您收到的特定错误消息 (\'invalid-api-key\') 有关。