firebase - رد فعل الأصلي فيريباس تخزين تحميل باستخدام استدعاء بوتسترينغ



upload react-native (1)

أنا إعداد هذا الموضوع من أجل توضيح ما إذا كان طريقة التخزين بوتريبينغ طريقة فريباس لا أو لا يعمل في رد فعل الأصلي.

من ما بحثت لا يوجد حاليا أي وسيلة لتحميل الملفات أو أنواع بلوب إلى فيريباس التخزين باستخدام طريقة وضع .

رد فعل الأصلي لا يدعم أنواع الملفات و بلوب، لذلك فيريباس تخزين التحميلات لن تعمل في هذه البيئة. ومع ذلك، تعمل عمليات تنزيل الملفات.

المصدر: مدونة فيريباس

وهكذا هذه الدعوة

firebase.storage().ref()
.child(userID)
.put(new File(['this is a small amount of data'], 'sample-text.txt', { type: "text/plain" }), { type: "text/plain" })
.then(p => {console.log(p)})
.catch(p => {console.log(p)})

لا ينتهي وينتهي بالرد

كود: "تخزين / غير معروف" رسالة: "التخزين فيريباس: حدث خطأ غير معروف، يرجى التحقق من الحمولة خطأ استجابة الخادم". اسم: "فيريباسيرور" سيرفيرريسبونز : " لا يحتوي الجسم متعدد الأجزاء على 2 أو 3 أجزاء. "

ومع ذلك هناك خيار آخر لتحميل البيانات إلى فيريباس التخزين، وذلك باستخدام طريقة التخزين فيريباس بوتسترينغ. الذي يعمل مع سلسلة عادي. ولكن حتى لو كنت تستخدم هذه الطريقة لتحميل. أنا الحصول على نفس الخادم استجاب كما كان من قبل.

firebase.storage()
.ref()
.child(userID)
.putString('string')
.then(p => {console.log(p)})
.catch(p => {console.log(p)});

بو من ما تعلمت من هذه الإجابة . طريقة بوتسترينغ يجب أن تعمل.

ما الخطأ الذي افعله؟ رمز يعمل بشكل جيد بالنسبة لي في رد فعل. كلما لصق لرد الفعل الأصلي. يتوقف عن العمل.


لقد حاولت فقط رد الفعل الأصلي جلب بلوب كما علقت فين من قبل، وكنت قادرا على جعله العمل، حاول استخدام هذا المقتطف من ملف الفهرس في المثال:

1) قبل إعلان الصف:

import RNFetchBlob from 'react-native-fetch-blob';
const Blob = RNFetchBlob.polyfill.Blob;
window.XMLHttpRequest = RNFetchBlob.polyfill.XMLHttpRequest;
window.Blob = Blob;

2) داخل طريقة التخزين:

let filePath = 'YOUR/FILE/PATH';
let fileName = 'file_name.jpg';
let rnfbURI = RNFetchBlob.wrap(filePath);
// create Blob from file path
Blob
.build(rnfbURI, { type : 'image/png;'})
.then((blob) => {
  // upload image using Firebase SDK
  firebase.storage()
    .ref('images')
    .child(fileName)
    .put(blob, { contentType : 'image/jpg' })
    .then((snapshot) => {
      console.log('Uploaded', snapshot.totalBytes, 'bytes.');
      console.log(snapshot.metadata);
      var url = snapshot.metadata.downloadURLs[0];
      console.log('File available at', url);
    }).catch(function(error) {
      console.error('Upload failed:', error);
    });




firebase-storage