You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase数据写入异常:数据被保存至"0"子路径问题咨询

解决Firebase数据存入"0"子路径的问题

嘿,这问题我一眼就瞅出来啦!你遇到的情况是因为你把单个商品对象包装成列表来存储,Firebase处理列表时会自动用数组索引(这里就是"0")作为子节点键,把你的商品数据存到这个索引下面了。

问题根源在这行代码:

var finalProduct = mutableListOf<AddProductsItem>(ct)

你把单个AddProductsItem对象塞进了列表里,然后传给setValue(),Firebase就会按照列表的格式来存储数据——自动生成索引键,所以你的商品就跑到"0"这个子路径里了。

修复方案

直接存储单个AddProductsItem对象就行,不用多此一举包装成列表:

修改后的关键代码片段:

builder.setPositiveButton("Yes"){ _, _ ->
    // 直接传入ct对象,去掉列表包装
    database.child("users").child(uid).child("products").push().setValue(ct)
    Toast.makeText(this.con,"Added product to your list",Toast.LENGTH_SHORT).show()
}

额外小提示

如果之后你需要一次性添加多个商品,也别直接传整个列表(不然还是会生成带索引的节点),建议循环遍历商品列表,每次调用push()添加单个对象——这样Firebase会给每个商品生成唯一的随机键,数据结构更清晰,后续也更易维护。

内容的提问来源于stack exchange,提问作者Artur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 07:53:12