capawesome-team / capacitor-firebase

⚡️ Firebase plugins for Capacitor. Supports Android, iOS and the Web.
https://capawesome.io/plugins/firebase/
Apache License 2.0
394 stars 101 forks source link

Error uploadFile Andorid #735

Closed FrancescoIoppolo closed 1 week ago

FrancescoIoppolo commented 1 week ago

Discussed in https://github.com/capawesome-team/capacitor-firebase/discussions/733

Originally posted by **FrancescoIoppolo** October 10, 2024 I'm having a problem that I haven't been able to solve in any way. On Android it always gives me this error: "Msg: Error taking photo: **"Msg: Error: Attempt to invoke virtual method 'java.lang.String com.getcapacitor.JSObject.getString(java.lang.String)' on a null object reference"** Has anyone had any experience "@capacitor-firebase/storage": "^5.4.1", Android 14 ```js import React, { useState } from 'react'; import { Camera, CameraResultType } from '@capacitor/camera'; import { FirebaseStorage } from '@capacitor-firebase/storage'; import { Filesystem } from '@capacitor/filesystem'; import { IonButton, IonImg, IonContent, IonSpinner, IonToast } from '@ionic/react'; const UploadPhoto = () => { const [imageUrl, setImageUrl] = useState(null); const [previewUrl, setPreviewUrl] = useState(null); const [loading, setLoading] = useState(false); const [showToast, setShowToast] = useState(false); const takePhoto = async () => { const hasPermission = await checkPermissions(); if (!hasPermission) { setShowToast(true); return; } try { console.log("Scattando una foto..."); const photo = await Camera.getPhoto({ resultType: CameraResultType.Uri, quality: 90, }); console.log("Foto acquisita:", photo); if (photo.webPath) { setPreviewUrl(photo.webPath); await uploadFile(photo.path); } else { console.error("Nessun percorso di file disponibile per la foto."); } } catch (error) { console.error("Errore scattando la foto:", error); } }; const checkPermissions = async () => { const permissions = await Camera.requestPermissions(); return permissions.camera === 'granted'; }; const uploadFile = async (imageUri) => { const path = `test.jpg`; return new Promise((resolve, reject) => { FirebaseStorage.uploadFile( { path: path, uri: imageUri, }, (event, error) => { if (error) { reject(error); alert("Qualcosa è andato storto, ti preghiamo di riprovare altrimenti l'immagine non verrà salvata") } else if (event?.completed) { resolve(); alert("Foto aggiornata correttamente") } } ); }); }; return ( Scatta Foto {previewUrl && ( <>

Anteprima dell'immagine scattata:

)} {loading && } {imageUrl && ( <>

Immagine caricata su Firebase:

)} setShowToast(false)} message="Permessi necessari non concessi!" duration={2000} />
); }; export default UploadPhoto; ```
robingenz commented 1 week ago

I close this issue because no issue template was used. Please create a new issue and fill out the bug report template correctly so that we have all the information we need to help you.