如何在Firebase数据库中正确更新已创建的数组?
解决Firebase数组更新问题
问题原因
你用filteredArr.push()作为字段值是错误的——push()方法的返回值是数组更新后的长度,不是更新后的数组本身,所以数据库里才会存成4。
正确写法
要把整个filteredArr替换到ArrOfParasites字段,直接赋值即可:
update(ref(db, 'users/' + user.localId), { ArrOfParasites: filteredArr })
补充说明
如果你的需求是往现有数组里追加元素(而非替换整个数组),可以用Firebase提供的数组更新方法arrayUnion:
import { update, arrayUnion } from "firebase/database"; // 追加单个元素 update(ref(db, 'users/' + user.localId), { ArrOfParasites: arrayUnion(["新元素", 1]) }) // 追加多个元素(展开目标数组) update(ref(db, 'users/' + user.localId), { ArrOfParasites: arrayUnion(...filteredArr) })
内容的提问来源于stack exchange,提问作者Proger228
相关产品推荐
相关产品推荐

