1

使用this couchbase模塊與react-native Android提供了一個很棒的API來獲取並傳輸到本地的couchbase-lite數據庫。但是,我想要做的是使用文檔的縮略圖附件作爲Image組件的source屬性的URI。就像這樣:來自Couchbase Lite的React-Native Android圖像源

var imageURI = 'http://localhost:5984/demoapp/' + this.props.book.thumbnail 
... 
<Image source={{uri: imageURI}} \> 

我記錄的URI,並驗證它是正確構造,並轉發到本地數據庫端口,以確保該附件是從源頭上覆制。然而,當項目的ListView呈現它缺少縮略圖。我也用圖像的網址測試了ListView,它有時候有時候並且有時候不起作用。與couchdb附件一樣,是的;但有一個雲彩附件,沒有。

我想這與用於Android的Image組件以及設備上的couchbase lite實例的請求標頭或響應標頭的http服務有關。到目前爲止,我還沒有找到任何東西。

+0

你存儲圖像數據作爲Couchbase一個base64字符串? –

+0

發生的不一致性,對於CouchDB而言,它們總是肯定的,對於Cloudant而言,它們總是肯定的,或者它有所不同? 假設您存儲在JSON中的二進制數據是base64編碼的,您知道返回是JSON還是MIME multipart/related? 你也得到所有來源的200? : http://developer.couchbase.com/documentation/mobile/1.1.0/develop/references/sync-gateway/rest-api/document/get---db---doc---attachment-/index .html – sweetiewill

+0

@sweetiewill,它不是JSON base64,它是MIME作爲附件,它在使用couchDB連續擊中互聯網時起作用。你知道如何監控RN網絡嗎?這可能是一個CORS問題嗎?再次,我在哪裏可以看到? – ssomnoremac

回答

1

更多的解決方法不是解決辦法:將圖像存儲爲base64數據和訪問他們像這樣:

var imageURI = 'data:image/jpeg;base64,' + this.props.book._attachments["thumbnail.jpg"].data; 
... 

<Image source={{uri: imageURI}} 
+0

也可以參考源代碼:https://github.com/InfiniteLibrary/infinite-reader/blob/master/android/app/components/CatalogCell.js#L22 – sweetiewill