Firebase数据库URL-配置Firebase
我正在尝试将Firebase与我的react应用程序一起使用 我有一个配置如下的文件:Firebase数据库URL-配置Firebase,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,我正在尝试将Firebase与我的react应用程序一起使用 我有一个配置如下的文件: import * as firebase from 'firebase'; const config = { apiKey: process.env.FIREBASE_API_KEY, authDomain: process.env.FIREBASE_AUTH_DOMAIN, databaseURL: process.env.FIREBASE_DB_URL, projectId: proce
import * as firebase from 'firebase';
const config = {
apiKey: process.env.FIREBASE_API_KEY,
authDomain: process.env.FIREBASE_AUTH_DOMAIN,
databaseURL: process.env.FIREBASE_DB_URL,
projectId: process.env.FIREBASE_PROJECT_ID,
storageBucket: process.env.FIREBASE_STORAGE_BUCKET,
messagingSenderId: process.env.FIREBASE_MESSAGE_ID,
}
if (!firebase.apps.length) {
firebase.initializeApp(config);
}
const database = firebase.database();
const auth = firebase.auth()
export {firebase, auth, database };
当我尝试此操作时,会出现一个错误,显示:
FIREBASE致命错误:无法确定FIREBASE数据库URL。调用firebase.initializeApp()时,请确保包含databaseURL选项
我无法理解此错误,因为我在初始化应用程序的调用中包含了配置。配置包括数据库URL
如何初始化数据库?围绕
firebase.initializeApp(config)的if
语句不需要该if代码>
您不需要导出这些对象,一旦初始化应用程序,它就可以在项目中使用,而无需导出
const database = firebase.database();
const auth = firebase.auth()
export {firebase, auth, database };
在FiasBaseJS中,当我删除DavaStudioL:和Prime.Env.FixBaseDabaseE.URL之间的空白时,它工作了。p>
const config = {
apiKey: process.env.FIREBASE_API_KEY,
authDomain: process.env.FIREBASE_AUTH_DOMAIN,
databaseURL:process.env.FIREBASE_DATABASE_URL,
projectId: process.env.FIREBASE_PROJECT_ID,
storageBucket: process.env.FIREBASE_STORAGE_BUCKET,
messagingSenderId: process.env.FIREBASE_MESSAGING_SENDER_ID
};
不要多次初始化firebase
这里也有同样的问题。
上下文:Gatsby-Gatsby-node.js
出于某种原因,它不像我的环境数据库url。需要对该值进行硬编码
const config = {
apiKey: process.env.GATSBY_FIREBASE_API_KEY,
authDomain: process.env.GATSBY_FIREBASE_AUTH_DOMAIN,
databaseURL: "https://blabla.firebaseio.com",
projectId: process.env.GATSBY_FIREBASE_PROJECT_ID,
storageBucket: process.env.GATSBY_FIREBASE_STORAGE_BUCKET,
messagingSenderId: process.env.GATSBY_FIREBASE_MESSAGING_SENDER_ID
}
它成功了
cya在这里遇到了相同的问题,但在将firebaseconfig放入componentDidMount()
后,问题将得到解决
componentDidMount(){
const firebaseConfig = {
apiKey: process.env.FIREBASE_API_KEY,
authDomain: process.env.FIREBASE_AUTH_DOMAIN,
databaseURL:process.env.FIREBASE_DATABASE_URL,
projectId: process.env.FIREBASE_PROJECT_ID,
storageBucket: process.env.FIREBASE_STORAGE_BUCKET,
messagingSenderId: process.env.FIREBASE_MESSAGING_SENDER_ID
};
firebase.initializeApp(firebaseConfig);
const myitem = firebase.database().ref('items/').once('value',snapshot=>{
console.log(snapshot.val())
})
}重新启动开发服务器可以解决问题,如果您刚刚编写了代码并试图编译它,则会抛出此错误。因此,您可以尝试退出批处理作业,然后再次重新启动服务器。我还收到了与firebase相关的未捕获错误。最后,错误应该得到解决。
实际上,当我们使用环境变量时,它们不应该传入bundle.js文件,这是一个客户端javascript文件。我们可以使用“DefinePlugin”,这是一个网页插件,应该手动将这些环境变量传入bundle.js文件。看起来您的代码很好。只需打印并检查process.env.FIREBASE\u DATABASE\u URL
,它与FIREBASE控制台中提到的完全相同。(如果您使用的是create react app,请不要忘记将react\u app
添加到所有环境变量中。)
将完成工作。我认为这是复制粘贴错误:)
在.env文件中
反应\应用\数据库\ URL
但是我用
process.env.REACT_APP_DB
请检查一下,它工作正常
import firebase from 'firebase/app'
import 'firebase/database';
const config = {
apiKey: process.env.REACT_APP_APIKEY,
authDomain: process.env.REACT_APP_AUTHDOMAIN,
databaseURL: process.env.REACT_APP_DATABASE_URL,
projectId: process.env.REACT_APP_PID,
storageBucket: process.env.REACT_APP_SB,
messagingSenderId: process.env.REACT_APP_SID,
appId: process.env.REACT_APP_APPID,
measurementId: process.env.REACT_APP_MID
};
firebase.initializeApp(config);
const database = firebase.database();
export { database };
export default firebase;
我只是粘贴硬代码配置,它为我工作
const config = {
apiKey: "AIzaSyBA2C8S7****************-gCw",
authDomain: "e**********-2aa4c.firebaseapp.com",
databaseURL: "https://************.firebaseio.com",
projectId: "ea********2aa4c",
storageBucket: "ea************2aa4c.appspot.com",
messagingSenderId: "1765********26",
}
这怎么可能是一个解决方案呢?componentDidMount
与此有什么关系?天哪,这正是我的问题,我真的为此自责。谢谢你,伙计!你现在知道原因了吗?:)虽然这是一种解决方法,但如果知道为什么访问此环境变量的值不起作用,那就太好了。
import firebase from 'firebase/app'
import 'firebase/database';
const config = {
apiKey: process.env.REACT_APP_APIKEY,
authDomain: process.env.REACT_APP_AUTHDOMAIN,
databaseURL: process.env.REACT_APP_DATABASE_URL,
projectId: process.env.REACT_APP_PID,
storageBucket: process.env.REACT_APP_SB,
messagingSenderId: process.env.REACT_APP_SID,
appId: process.env.REACT_APP_APPID,
measurementId: process.env.REACT_APP_MID
};
firebase.initializeApp(config);
const database = firebase.database();
export { database };
export default firebase;
const config = {
apiKey: "AIzaSyBA2C8S7****************-gCw",
authDomain: "e**********-2aa4c.firebaseapp.com",
databaseURL: "https://************.firebaseio.com",
projectId: "ea********2aa4c",
storageBucket: "ea************2aa4c.appspot.com",
messagingSenderId: "1765********26",
}