Как сохранить Blob во временном собственном хранилище в React Native? - PullRequest
0 голосов
/ 23 января 2020

Цель: в проекте React-Native запишите большой двоичный объект в базу данных / хранилище, предварительно сохранив большой двоичный объект во временном собственном хранилище. Я использую react-native-firebase, а не js Firebase SDK. поэтому я должен использовать метод RN-Firebase .putFile(). который принимает путь к файлу. Я предполагаю, что это не так просто, как использовать путь к объекту ответа из response-native-image-crop-picker, иначе ответ, найденный здесь , не сказал бы, что вам нужно сохранить большой двоичный объект в tmp. хранить и использовать путь к файлу большого двоичного объекта, а не изображение.

содержимое моего существующего метода загрузки:

const uploadUri = Platform.OS === 'ios' ? uri.replace('file://', '') : uri;
    let uploadBlob = null;
    // update storage ref to work with react-native-firebase
    const imageRef = firebase.storage().ref(uid).child('profileImg');
    fs
        .readFile(uploadUri, 'base64')
        .then((data) => {
            return Blob.build(data, { type: `${mime};BASE64` });
        })
        .then((blob) => {
            uploadBlob = blob;
            // update to use react-native-firebase binding
            // return imageRef.putFile({file-Path-of-blob}, {metadata})

            // firebase js SDK version
            // return imageRef.put(blob, { contentType: mime });
        })
        .then(() => {
            uploadBlob.close();
            return imageRef.getDownloadURL();
        })
        .then((url) => {
            console.log('Returning Download URL: ' + url);
            uploadImgSuccess(dispatch, 'Image upload successful...');
        })
        .catch((err) => {
            uploadImgFail(dispatch, 'Image  upload failed: ' + JSON.stringify(err));
        });
}

Как выполнить промежуточный этап сохранения большого двоичного объекта в хранилище один раз Он создан и извлекает путь, который можно использовать в методе .putFile()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...