Я пытаюсь рассчитать процент загрузки изображения в хранилище Firebase в React Native, однако snapshot.bytesTransferred, отправленный сервером Firebase, показывает ошибочные значения.
firebase.storage().
ref().
child('images').
child('randomFileName').
put(blob, {contentType: 'image/png'}).
on('state_changed',
progressCallback, // This is the upload progress callback
(error) => {
alert(error.message);
},
() => {
successCallback(randomKey);
});
Это функция progressCallback, она в основном устанавливает состояние, вычисляющее процент уже переданных байтов по сравнению с общим количеством байтов файла.
процентная формула был взят из официальной документации React:
(snapshot) => {
let pct = (snapshot.bytesTransferred / snapshot.totalBytes) * 100;
console.debug('snapshot.totalBytes: ' + snapshot.totalBytes);
console.debug('snapshot.bytesTransferred: ' + snapshot.bytesTransferred);
console.debug('percentage: ' + pct);
let state = this.state;
state.pct = pct;
this.setState(state);
}
Однако snapshot.bytesTransferred возвращает ошибочные результаты:
snapshot.totalBytes: 882722
snapshot.bytesTransferred: 0
percentage: 0
snapshot.totalBytes: 882722
snapshot.bytesTransferred: 010240
percentage: 1.1600481238713887
snapshot.totalBytes: 882722
snapshot.bytesTransferred: 0262144
percentage: 29.697231971107552
snapshot.totalBytes: 882722
snapshot.bytesTransferred: 262144
percentage: 29.697231971107552
snapshot.totalBytes: 882722
snapshot.bytesTransferred: 26214410240
percentage: 2969724.3571588793
snapshot.totalBytes: 882722
snapshot.bytesTransferred: 262144450560
percentage: 29697283.013225004
snapshot.totalBytes: 882722
snapshot.bytesTransferred: 786432
percentage: 89.09169591332265
snapshot.totalBytes: 882722
snapshot.bytesTransferred: 78643240960
percentage: 8909174.231524762
snapshot.totalBytes: 882722
snapshot.bytesTransferred: 882722
percentage: 100
Как вы можете видеть в примере кода, я не привожу возвращаемые значения к Int или чему-либо, что изменяет результаты, отправленные мне Firebase. Должен ли я делать что-то еще?
Подробности:
@hugger Нет, извини. Я давно не работал с Firebase



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы решили это? У меня такая же проблема...