首页 > 解决方案 > Firebase云功能不是写通配符的内容,而是通配符的名称

问题描述

当我使用云功能写入实时数据库时,我不断在数据库中获取“myUID”,而不是通配符的内容(实际的 uid)。我的语法有问题吗?

另外,我在函数中有异步,因为在发布之前我删除了其他一些事情。函数运行和写得很好,但我想写myUID的内容而不是字面上写“myUID”

export const userFollow = functions.database
.ref ('/user-following/{myUID}/{targetUID}')
.onCreate(async(snapshot, context) => {
    const myUID = context.params.myUID
    const targetUID = context.params.targetUID
    const ref = admin.database().ref(`/user-followers/${targetUID}`) 
    return ref.set({myUID : 1})
})

标签: typescriptfirebasefirebase-realtime-databasegoogle-cloud-functions

解决方案


当对象属性按照您现在的名称命名时,JavaScript 会按字面意思获取对象属性的名称。如果要将变量的值用作属性的名称,请使用方括号语法:

ref.set({[myUID] : 1})

推荐阅读