要保存超过1MB的对象到Firestore,你可以使用Firestore的分块写入技术。下面是一个示例代码,演示如何将大于1MB的对象分块保存到Firestore:
// 导入Firebase SDK
const firebase = require('firebase');
// 初始化Firebase应用
firebase.initializeApp({
// 添加你的Firebase配置
apiKey: 'YOUR_API_KEY',
authDomain: 'YOUR_AUTH_DOMAIN',
projectId: 'YOUR_PROJECT_ID'
});
// 获取Firestore实例
const firestore = firebase.firestore();
// 定义要保存的大型对象
const largeObject = {
// 这里是你的大型对象数据
};
// 将对象分块为1MB的大小
const chunkSize = 1 * 1024 * 1024; // 1MB
const chunks = [];
let offset = 0;
while (offset < JSON.stringify(largeObject).length) {
chunks.push(JSON.stringify(largeObject).slice(offset, offset + chunkSize));
offset += chunkSize;
}
// 创建Firestore批处理对象
const batch = firestore.batch();
// 创建一个新的文档引用
const largeObjectRef = firestore.collection('largeObjects').doc();
// 将分块数据写入Firestore批处理
chunks.forEach((chunk, index) => {
batch.set(largeObjectRef.collection('chunks').doc(`chunk${index}`), { chunk });
});
// 提交批处理写入
batch.commit().then(() => {
console.log('大型对象保存成功');
}).catch((error) => {
console.error('保存大型对象失败:', error);
});
以上代码假设你已经通过Firebase控制台设置了Firestore的权限规则,以允许你的应用程序读取和写入到largeObjects
集合。你需要将YOUR_API_KEY
、YOUR_AUTH_DOMAIN
和YOUR_PROJECT_ID
替换为你的Firebase项目的实际值。
上一篇:保存场景时着色器的奇怪行为
下一篇:保存查询的内存