如果我使用Firebase存储分数,如何防止该用户自己使用浏览器控制台重写他/她自己的数据?

时间:2019-03-26 08:45:29

标签: javascript firebase firebase-realtime-database

假设我有一个游戏,并且将比分,金钱和宝石设置为数据库中的特定路径。我已经正确定义了所有规则,并且在这里锁定了我的应用程序的HTTP引荐来源网址:https://console.developers.google.com/apis

但是问题是我该如何阻止拥有所有Firebase初始化详细信息的用户重写他/她自己的数据。对于游戏,我不希望用户更新自己的钱,宝石和所有东西。

具有这些详细信息的任何人都可以打开浏览器控制台并粘贴一些类似于以下的代码:

function loadScript(callback) {
   //loading the script file
   var script = document.createElement('script');
   script.src = "https://www.gstatic.com/firebasejs/[version]/firebase.js";
   document.getElementsByTagName('head')[0].appendChild(script);

   script.onload = function() {callback()};
}
function firebaseApp() {
    // Firebase Initialization
     var config = {
    apiKey: "[apiKey]",
    authDomain: "[authDomain]",
    databaseURL: "[databaseURL]",
    projectId: "[projectId]",
    storageBucket: "[storageBucket]",
    messagingSenderId: "[messagingSenderId]"
  };
  firebase.initializeApp(config);

  firebase.database().ref('users/[userId]').set({
    score: 9999999,
    gems: 99999999,
    money: 99999999
  });
};
loadScript(firebaseApp);

在此之前,用户也必须粘贴以下代码来获取用户ID:

var dbRef= firebase.database().ref('users/');
dbRef.on('value', snap => console.log(snap.val()));

我的游戏会毁了!

0 个答案:

没有答案