我正在按照here的示例在Firestore上存储和检索图像blob,但检索时遇到了问题:
const firebase_blob = doc.get('img');
const uint8_array = firebase_blob.toUint8Array();
运行代码时出现以下错误:
firebase_blob.toUint8Array is not a function at UserManager.js:91:59
使用console.log(firebase_blob);
,我得到以下内容:
{
"_byteString": {
"binaryString": "ÿØÿà\u0000\u0010JFIF\u0000\u0001\u0001\u0000\u0000\u0001\u0000\u0001\u0000\u0000ÿâ\u0001ØICC_PROFILE\u0000\u0001\u0001\u0000\u0000\u0001È\u0000\u0000\u0000\u0000\u00040\u000(...truncated)"
}
}
有谁能指出我的错误吗?toUint8Array是不是被另一个函数取代了?先谢谢你。
1条答案
按热度按时间sqxo8psd1#
更新
当按照marc-anthony-b的建议编辑可复制代码时,我意识到上传到Firebase Cloud Functions会改变blob。
以下是使用Firebase updateDoc直接上传的数据:
以下是通过Firebase云函数上传的数据:
虽然类型改变了,但我意识到二进制数据仍然可以访问。在qrsngky的建议下,我使用以下代码检索了Uint8Array:
一旦我有了Uint8Array,我就可以像这样得到blob_url:
如果我可以只使用
toUint8Array()
的话,那就简单多了,但是我现在就不考虑这个问题了,谢谢!