How to solve FirebaseError: Firebase Storage: Invalid URL react native

Viewed 32

I couldn't find an answer For Web V9, all I'm trying to do is to delete an image from Firebase-Storage using the URL not the image name as demonstrated in their Docs here

import { initializeApp } from "firebase/app";
import { getAuth } from "firebase/auth";
import { getDatabase } from "firebase/database";
import { getFirestore } from "firebase/firestore";
import { getStorage } from "firebase/storage";



const firebaseConfig = {
  apiKey: process.env.REACT_APP_FIREBASE_KEY,
  authDomain: ".....",
  databaseURL: ".....",
  projectId: ".......",
  storageBucket: "......",
  messagingSenderId: ".......",
  appId: ".......",
  measurementId: "......"
};

// Initialize Firebase
const app = initializeApp(firebaseConfig);
export const database = getDatabase(app);
export const firestore = getFirestore(app);
export const storage = getStorage(app)
export const auth = getAuth()

So this is the code that I have tried

import { firestore, storage, database } from "../../firebase"
import { deleteObject, ref } from "firebase/storage";
import { storage } from "./firebase";

const SingleApplication = () => {

function delete(){

const ImgUrl = "https://firebasestorage.googleapis.com:443/v0/b/......appspot.com/o/Application-Imeges%2F09........"

const dImgRef = ref(storage, ImgUrl) //ImgUrl is a firebase sotrage url

deleteObject(dImgRef).then(() =>{
        console.log("deleted")
        
      })
}

return (
        <div className='Main'>
          </div>
    )
  }
    
    export default SingleApplication

and the error was:

Firebase Storage: Invalid URL 'https://firebasestorage.googleapis.com:443/v0/b/......appspot.com/o/Application-Imeges%2F09F501.......'

I'm using react JSX

1 Answers

give permission to delete the file on firebase storage rules

rules_version = '2';
service firebase.storage {
  match /b/{bucket}/o {
    match /folder1/{image} {
      allow read: if true
      ...
      allow delete: if true
    }
  }
}

then

import { deleteObject, ref } from "firebase/storage"

const pathImage = "folder1/image.jpg" // your path
const reference = ref(storage, pathImage)
deleteObject(reference).then().catch()
Related