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

Firebase Realtime Database安全规则编写及JS调用技术咨询

Firebase 安全规则与操作代码实现

一、Realtime Database 安全规则

{
  "rules": {
    "status": {
      ".read": true,
      ".write": false
    },
    "keys": {
      ".read": "auth.uid === 'YOUR_SPECIFIC_USER_UID' || auth.uid === 'ANOTHER_SPECIFIC_UID'",
      ".write": "auth != null"
    }
  }
}
  • 替换YOUR_SPECIFIC_USER_UID和ANOTHER_SPECIFIC_UID为你允许读取database/keys的用户UID
  • status路径开放所有读权限,完全禁止写入
  • keys路径仅已认证用户可写入,仅指定UID用户可读取

二、JavaScript 操作代码

1. 写入 database/keys(需已认证)

// 假设已完成Firebase初始化与邮箱密码认证
const db = firebase.database();

// 写入数据示例(使用set覆盖,或push添加新节点)
async function writeToKeys(data) {
  try {
    // 确认用户已认证
    const user = firebase.auth().currentUser;
    if (!user) throw new Error("用户未认证");

    // 写入数据到keys路径
    await db.ref('keys').set(data);
    // 或添加新节点:await db.ref('keys').push(data);
    console.log("数据写入成功");
  } catch (error) {
    console.error("写入失败:", error.message);
  }
}

// 调用示例
writeToKeys({ key1: "value1", key2: "value2" });

2. 读取 database/keys(需指定UID用户认证)

const db = firebase.database();

// 读取数据示例
async function readFromKeys() {
  try {
    const user = firebase.auth().currentUser;
    if (!user) throw new Error("用户未认证");

    const snapshot = await db.ref('keys').get();
    if (snapshot.exists()) {
      console.log("读取到的数据:", snapshot.val());
      return snapshot.val();
    } else {
      console.log("keys路径无数据");
      return null;
    }
  } catch (error) {
    console.error("读取失败:", error.message);
  }
}

// 调用示例
readFromKeys();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 13:15:21