Hide/Disable 客户端的 firebase 函数

Hide/Disable firebase functions for client

我是 firebase 的新手,想知道如何禁用客户端手动放入浏览器控制台的特定功能。

示例:

function createRoomDB(roomID, name, mode, start, length, aname, opcount, secrettoken) {
  firebase.database().ref('rooms/' + roomID).set({
    name: name,
    mode: mode,
    start: start,
    length: length,
    aname: aname,
    opcount: opcount,
    secrettoken: secrettoken
  });
}

(名字与我的问题无关。)

长话短说:我不希望用户简单地使用此命令来创建新数据。我知道你不能在前端隐藏代码,但是禁用这个地狱般的后门的最简单和最有效的方法是什么?

我计划在 GitHub 页上托管此应用程序。

由于您的代码可以访问数据库,因此无法阻止 运行 在同一环境中的其他代码也可以访问数据库。

这意味着您有两个选择:

  1. 确保所有代码(无论是谁编写的)只能对数据库执行授权操作。
  2. 运行不同环境下的代码。

对于第一个选项,您需要查看 Firebase security rules,它会自动 运行 服务器端并可以强制执行大多数要求。

对于第二个选项,例如,您可以 运行 Cloud Functions for Firebase 中的代码,然后从您的 API 中调用它。这允许您在受信任的环境中隐藏任何秘密值和代码,但这确实意味着您需要确保 only authorized users can call that Cloud Function.