【发布时间】:2020-02-29 18:01:09
【问题描述】:
有人可以帮助我更好地理解这个错误吗?我正在尝试使用 p5.js 和 firebase/firestore 创建一个站点,您可以在该站点上在画布上绘制一些东西,然后将绘图保存到 firestore,但是当我单击保存时,我收到此错误:
error.ts:166 未捕获的 FirebaseError:使用无效数据调用函数 DocumentReference.set()。不支持嵌套数组
到目前为止我的代码:
var drawing = [];
var currentPath = [];
var isDrawing = false;
function setup() {
canvas = createCanvas(400,400);
canvas.mousePressed(startPath);
canvas.parent('canvas');
canvas.mouseReleased(endPath);
var saveButton = select('#saveButton');
saveButton.mousePressed(saveDrawing);
}
function startPath() {
isDrawing = true;
currentPath = [];
drawing.push(currentPath);
}
function endPath() {
isDrawing = false;
}
function draw() {
background(0);
if (isDrawing){
var point = {
x: mouseX,
y: mouseY
}
currentPath.push(point);
}
stroke(255);
strokeWeight(7);
noFill();
for (var i = 0; i < drawing.length; i++) {
var path = drawing[i];
beginShape();
for (var k = 0; k < path.length; k++) {
vertex(path[k].x, path[k].y)
}
endShape();
}
}
function saveDrawing(){
db.collection('joonistused').add({
drawing: drawing
});
var result = ref.push(data, dataSent);
console.log(result.key)
function dataSent(status) {
console.log(status);
}
}
编辑:如何将数组中的绘图坐标存储到 Firestore?喜欢将我的绘图保存到 Firestore 中吗?
【问题讨论】:
-
很抱歉问了一些显而易见的问题,但是您是否意识到
drawing有一组数组作为项目,并且错误指出 Firebase 不允许包含数组的数组?您对错误有什么不明白的地方? -
嗯好吧,但我怎样才能将绘图坐标存储在数组中以任何其他方式存储?抱歉,这个有点新……
-
您可以将对象存储在数组中,并将数组存储在该对象中。请参阅我的回答,我引用了一个类似的问题,更好地解释了这种限制;)
标签: javascript node.js firebase google-cloud-firestore p5.js