Я отправляю изображение в базу данных. Все успешно, и я могу загрузить изображение в хранилище Firebase. Но после того, как я добился успеха, мои коды внезапно отправили сообщение об ошибке еще раз. Таким образом, я записал несколько цифр, чтобы посмотреть, что происходит, и я получил «1,2,3,4 затем успех, а затем ошибка» на моей консоли , Как я могу загрузить изображение без ошибки? Я мог бы загрузить, но я также получаю ошибку сейчас .. Заранее спасибо ..
Сообщение об ошибке гласит: «Недопустимая попытка распространения не повторяемого экземпляра».
export const uploadPhoto = (uri, contentType = 'image/jpeg') => {
return async dispatch => {
try {
console.log('1');
const userId = firebase.auth().currentUser.uid;
const photoId = await uniqueIdGenerator();
dispatch({ type: UPLOAD_START });
console.log('2');
const snapshot = await firebase.storage().ref()
.child(`/photos/${userId}`)
.child(photoId)
.put(uri, { contentType });
console.log('3');
await firebase.firestore()
.collection('users').doc(userId)
.collection('photos').doc(photoId)
.set({ url: snapshot.downloadURL });
console.log(snapshot.downloadURL);
console.log('4');
await dispatch({ type: UPLOAD_SUCCESS, payload: snapshot.downloadURL });
console.log('5');
Actions.pop();
console.log('6');
}
catch (error) {
dispatch({ type: UPLOAD_FAILED });
console.log(error.message);
}
}
}
вот мой редуктор:
const INITIAL_STATE = {
data: [],
loading: false
}
export default (state = INITIAL_STATE, { type, payload }) => {
console.log('reducerState', state);
console.log('type,payload', type, payload);
switch (type) {
case UPLOAD_START:
return { ...state, data: payload, loading: true }
case UPLOAD_SUCCESS:
console.log('succesa girdi');
return { ...state, data: [...state.data, payload], loading: false }
case UPLOAD_FAILED:
return { ...state, data: payload, loading: false }
case GET_PHOTOS_START:
return { ...state, data: payload, loading: true }
case GET_PHOTOS_SUCCESS:
return { ...state, data: payload, loading: false }
case GET_PHOTOS_FAILED:
return { ...state, data: payload, loading: false }
default:
return state;
}
}
EDIT
Я выяснил проблему, удалив все фиктивные данные из моего хранилища баз данных. Я использую эмулятор для тестирования своего приложения и использую одни и те же фотографии снова и снова. Скорее всего, одни и те же фотографии вызывают проблемы, потому что я ничего не изменил в своем приложении, но теперь работает хорошо.