Dentro de mi archivo index.js:
export function postArticleAPI(payload) { return(dispatch) => { const upload = storage .ref(`images/${payload.image.name}`) .put(payload.image); upload.on("state_changed", (snapshot) => { const progress = ( (snapshot.BytesTransferred / snapshot.totalBytes) * 100); console.log(`Progress: ${progress}%`); if(snapshot.state === "RUNNING") { console.log(`Progress: ${progress}%`); } }, (error) => console.log(error.code), async() => { const downloadURL = await upload.snapshot.ref.getDownloadURL(); db.collection("articles").add({ ... }); }); } }; }Busco en los documentos proporcionados por firebase pero no estoy seguro de cómo implementar eso. Cuando ejecuto el código anterior, aparece el error "TypeError: firebase__WEBPACK_IMPORTED_MODULE_0 _.storage.ref is not a function".
Jugué con el código y también obtuve otros errores como: "...storage.put no es una función", obtuve errores con la carga, así como el error db.collection.
Aquí está mi firebase.js:
import { initializeApp } from 'firebase/app'; import { getAuth, GoogleAuthProvider } from 'firebase/auth'; import { getStorage } from "firebase/storage"; import { getFirestore } from "firebase/firestore"; const firebaseConfig = { ... } const firebaseApp = initializeApp(firebaseConfig); const db = getFirestore(firebaseApp); const auth = getAuth(); const provider = new GoogleAuthProvider(); const storage = getStorage(firebaseApp); export { auth, provider, storage }; export default db;Cualquier ayuda sería apreciada (y esta es mi primera publicación, así que avíseme si necesito agregar algo más). ¡Gracias!
Dado que está utilizando la sintaxis v9 para importar funciones de nivel superior, ya no existe un método storage.ref() . En su lugar, como se muestra en la documentación sobre cómo obtener una referencia y cargar archivos , puede hacer lo siguiente:
const ref = ref(storage, `images/${payload.image.name}`) const upload = uploadBytes(ref, payload.image);