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

第二代Firebase云函数中如何获取实时数据库操作的用户UID

在Firebase第二代云函数中获取实时数据库操作的用户UID

在第二代Firebase云函数(v2)中,实时数据库触发器的用户认证信息需要通过event对象的data.auth属性获取,替代第一代的context.auth.uid,具体实现步骤如下:

核心实现方式

  1. 使用第二代云函数的实时数据库触发器(如onValueWritten、onValueCreated等)。
  2. 通过event.data.auth?.uid获取触发操作的用户UID。

代码示例

import { onValueWritten } from "firebase-functions/v2/database";

export const trackDatabaseUserAction = onValueWritten("/your-target-path", (event) => {
  // 提取用户UID
  const userUid = event.data.auth?.uid;

  if (userUid) {
    console.log(`执行操作的用户UID: ${userUid}`);
    // 在这里添加你的业务逻辑处理
  } else {
    console.log("该数据库操作未关联认证用户(比如管理员控制台操作、未授权访问)");
  }
});

关键注意事项

  • 数据库规则限制:必须确保你的实时数据库规则要求用户认证后才能操作目标路径,否则event.data.auth会返回null。示例规则如下:
    {
      "rules": {
        "your-target-path": {
          ".write": "auth != null",
          ".read": "auth != null"
        }
      }
    }
    
  • 非用户触发的操作:如果是通过Firebase控制台、Admin SDK等无用户认证上下文的操作触发函数,event.data.auth同样会是null,需要在代码中处理这种情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 23:02:14