我正在React上创建一个应用程序,它使用Firebase作为后端数据,并希望能够上传图片。当尝试通过firebase获取存储引用时,我得到以下错误:
每次我尝试引用存储时,都会得到此错误。我也在firebase上使用实时数据库,但我不认为这会有任何干扰。下面是调用的代码:
import database, { auth, provider, storage } from '../../components/utils/firebase.js';
import { uploadBytes } from '@firebase/storage';
...
handleSubmit(e) {
e.preventDefault();
const file = e.target[0].files[0];
console.log("File: ", file);
if (!file) {
console.log("No file!");
} else {
const storageRef = ref(storage, `images/${file.name}`);
uploadBytes(storageRef, file);
console.log("Uploaded file!");
console.log("File: " + file);
}
}
firebase.js(我的配置文件):
import { initializeApp } from 'firebase/app';
import { getDatabase } from 'firebase/database';
import { getAuth, GoogleAuthProvider } from 'firebase/auth';
import { getStorage } from 'firebase/storage';
const firebaseConfig = {
apiKey: process.env.REACT_APP_APIKEY,
authDomain: process.env.REACT_APP_AUTHDOMAIN,
databaseURL: process.env.REACT_APP_DATABASEURL,
projectId: process.env.REACT_APP_PROJECTID,
storageBucket: process.env.REACT_APP_STORAGEBUCKET,
messagingSenderId: process.env.REACT_APP_MESSAGINGSENDERID,
appId: process.env.REACT_APP_APPID,
measurementId: process.env.REACT_APP_MEASUREMENTID
};
// Initialize Firebase
const app = initializeApp(firebaseConfig);
const database = getDatabase(app);
export const storage = getStorage(app);
export default database;
export const auth = getAuth(app);
export const provider = new GoogleAuthProvider();
有人知道为什么会这样吗?谢谢你,谢谢!
1条答案
按热度按时间pinkon5k1#
我是在观看某人设置存储桶的视频时发现这个问题的。
实际上,因为我已经在为实时数据库使用
ref
,并从实时数据库文件夹导入该命令,所以我的存储引用实际上是一个实时数据库引用。为了解决这个问题,我像这样导入了存储ref
函数:import { ref as sRef } from 'firebase/storage';
然后使用
sRef
代替ref
。希望这对任何有同样问题的人都有帮助!我很沮丧