Cześć!
Mam do was pytanie odnośnie Storage oferowanego przez Firebase. Jestem w trakcie tworzenia projektu, i nie mogę sobie poradzić z dodawaniem grafik do oferowanego Storage. Projekt tworzę na zajęcia, także więc jest to aplikacja w ReactNative, w połączniu z Firebase tworzona pod system Android (ponieważ iOS fizycznie nie posiadam). Projekt postawiony jest w oparciu o Expo, a działanie programu najczęściej sprawdzam na emulatorze z Android Studio (Nexus 4). Aktualnie zrobiłem już pobieranie grafiki z galerii:
_getPhotoLibrary = async () => {
let result = await ImagePicker.launchImageLibraryAsync({
allowsEditing: false,
aspect: [4, 3]
});
if (!result.cancelled) {
this.setState({ image: result.uri });
}
}
A w taki sposób próbuje grafikę z galerii dodać do Storage w FIrebase:
dodajFoto = () => {
//pobranie nazwy zdjęcia
const splittedl = this.state.image.split('/').length;
let name = this.state.image.split('/')[splittedl - 1];
console.log(this.state.image);
console.log(name);
//dodanie zdjęcia do Storage
const reference = firebase.storage().ref().child(name);
const task = reference.put({ data: { uri: this.state.image } }, { contentType: 'image/jpeg' });
task.on('state_changed', taskSnapshot => {
console.log(`${taskSnapshot.bytesTransferred} transferred out of ${taskSnapshot.totalBytes}`);
});
task.then((snapshot) => { console.log(`Foto has been successfully uploaded.`); }).catch((e) => console.log('uploading image error => ', e));
}
Niestety za każdym razem jak dodaje grafikę, to pisze że dodano 0 bajtów do firebase. W Storage zostaje utworzony plik .jpg ważący 9kb i niestety na tym się kończy. Próbowałem już wielu sposobów z Internetu niestety każdy zawodzi. Może ktoś z was widzi tu jakiś błąd i mi pomoże co mam zmienić żeby zdjęcie z galerii telefonu dodawało się do tego właśnie Storage. Odnośnie funkcji "put()" którą używam do dodawania zdjęcia, tylko ona aktualnie jako jedyna działa mi podczas dodawania. W Internecie większość osób pisze o funkcji putFile(), aczkolwiek ona u mnie nie działa :/ Jest to moje pierwsze doświadczenie z react Native, oraz aplikacjami mobilnymi przez to też troche jest to dla mnie problematyczne. Z góry dziękuję za pomoc.