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

在Firebase中向对象数组推送数据时如何获取UUID?

在Firebase Realtime Database推送数据时获取生成的UUID(Push键)

你可以通过两种方式获取Firebase push() 方法生成的唯一ID:

方法1:提前获取ID(写入数据前)

先创建push引用,此时Firebase已经生成了唯一键,你可以先拿到这个ID,再执行写入操作,适合需要把ID包含在数据本身的场景:

// 创建push引用,生成唯一ID
const newSensorRef = push(ref(db, `/users/${auth.currentUser.uid}/user/sensors`));
// 获取生成的UUID
const sensorId = newSensorRef.key;

// 写入数据,可选择将ID存入数据中
newSensorRef.set({
  sensorId: sensorId, // 建议避免和你原有的id字段重名,这里改名为sensorId
  name: registerInformation.nameBox,
  id: registerInformation.idBox,
  categories: registerInformation.categories,
  routine: registerInformation.routine,
});

方法2:写入完成后获取ID

通过push()返回的Promise,在数据写入成功后从快照中提取ID:

push(ref(db, `/users/${auth.currentUser.uid}/user/sensors`), {
  name: registerInformation.nameBox,
  id: registerInformation.idBox,
  categories: registerInformation.categories,
  routine: registerInformation.routine,
})
.then((snapshot) => {
  // 从快照的引用中获取生成的UUID
  const sensorId = snapshot.ref.key;
  console.log("新传感器的唯一ID:", sensorId);
  // 这里可以执行后续依赖该ID的逻辑
})
.catch((error) => {
  console.error("数据写入失败:", error);
});

注意:你原代码中的id字段和Firebase生成的push键如果重名,建议修改其中一个的命名,避免数据混淆。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 23:45:42