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

React Native中使用template literals更新Firebase数据不生效问题求助

问题原因

你遇到的是两个基础JS语法问题,共同导致了变量没有被正确解析:

  • 模板字面量必须使用反引号 ` 包裹,你使用了单引号',JS不会解析单引号内的${}占位符
  • 对象的动态属性名需要放在方括号[]内,否则JS会把整段字符串当作静态键名存储

修正方案

把出错的代码行替换为以下写法即可:

{ [`FriendsList.${FriendsUID}`]: true }

完整的修正后代码参考:

export default function updatefriends(FriendsUID){
    const friendadd = async() =>{
        const Uid = firebase.auth().currentUser.uid
        const friendlist = firebase.firestore().collection('users').where(
            "UID", "==", firebase.auth().currentUser.uid).get();
            
        console.log(Uid)
        friendlist.then((querySnapshot) => {
            querySnapshot.forEach((doc) => {
                doc.ref.update(
                    { [`FriendsList.${FriendsUID}`]: true }
                )
            })
        })
    }
}

额外优化建议

你当前定义了async函数但没有使用await语法,可以调整为await写法避免then嵌套,可读性更高:

export default async function updatefriends(FriendsUID){
    const currentUid = firebase.auth().currentUser.uid
    const querySnapshot = await firebase.firestore()
      .collection('users')
      .where("UID", "==", currentUid)
      .get()
    querySnapshot.forEach((doc) => {
        doc.ref.update({
          [`FriendsList.${FriendsUID}`]: true
        })
    })
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:15:03