无法进行身份验证以在 Android 上使用 Firebase API-s 和 React-Native



在与firebase进行身份验证时出现错误。查看Metro控制台窗口中出现的以下错误:

ERROR[错误:您的API密钥无效,请检查您是否正确复制了它]

在我的React-Native项目中运行react-native run-android时发生。应用程序本身运行得很好,我可以在运行项目的web版本时使用所有功能(感谢react-native-web)。

我配置firebase在一个简单的配置文件:

import firebase from 'firebase/app';
import '@firebase/auth';
import '@firebase/firestore';
const firebaseConfig = {
apiKey: process.env.REACT_APP_API_KEY,
authDomain: process.env.REACT_APP_AUTH_DOMAIN,
projectId: process.env.REACT_APP_PROJECT_ID,
storageBucket: process.env.REACT_APP_STORAGE_BUCKET,
messagingSenderId: process.env.REACT_APP_MESSAGING_SENDER_ID,
appId: process.env.REACT_APP_APP_ID,
measurementId: process.env.REACT_APP_MEASUREMENT_ID,
};
if (!firebase.apps.length) {
firebase.initializeApp(firebaseConfig);
}
export {firebase};

并在代码的各个地方导入导出的firebase对象。如您所见,配置是从.env文件加载的。如果其中提供的值是用于web应用程序的,我可以与api交谈,这很好。然而,如果我为Android提供配置,我一直得到前面提到的错误。我完全不知道为什么会这样。

我尝试了配置的各种组合(包括根本没有配置),但都不太成功。我在android/app目录下有google-services.json文件,我相信我已经将所有需要的依赖项和其他配置位正确添加到androidgradle文件中。

可能的原因是firebaseConfig依赖于process.env。如node.js文档中所述:process.env"…返回一个包含用户环境的对象。当在android上运行应用程序时,这个环境将不可用,因为它不是运行应用程序的node.js。我建议研究react-native-dotenv,以可靠的方式使用环境变量。

最新更新