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

如何将路由传参页面的手机号字段更新至Firestore并解决doc ID缺失报错

问题原因

你当前代码调用db.collection("FinalData").doc()时没有传入要更新的文档ID,Firestore无法识别你需要修改集合内的哪条数据,所以会抛出doc ID缺失的错误。

解决步骤
  • 跳转ItemDetails页面前,在列表页渲染FinalData集合数据时,每条数据都会自带Firestore生成的唯一id属性,跳转时需要把这个ID作为参数一起传入route.params
  • 在ItemDetails页面从路由参数中取出该文档ID,传入doc()方法即可
修改后代码示例
const ItemDetails = ({ route }) => {
    const[values, setValue] = useState('')
    let data = route.params
    // 此处假设你跳转传参时把文档ID存在了docId字段,可根据你实际的传参字段名调整
    const targetDocId = data.docId
    console.log(data)

    const updateValue = () => {
        db.collection("FinalData")
            // 传入目标文档ID
            .doc(targetDocId)
            .update({ 
                mobile_no: values
            })
            .then(function () {
                alert("Mobile Number Updated Successfully")
            })
            // 新增错误捕获方便排查权限、数据不存在等其他问题
            .catch(err => console.log("更新失败:", err))
    }
}
注意事项
  • 不要使用业务字段作为文档ID传入,必须使用Firestore返回的每条数据自带的id属性
  • 若之前列表页没有传递文档ID,修改跳转逻辑把对应ID带上即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:54:04