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
相关产品推荐
相关产品推荐

