从p5.js游戏中

问题描述

SS of error I am recieving.我已经创建了一个弹跳球游戏,并将其与我创建的火力基地相连。我正在尝试从firebase读取和写入highscore和用户详细信息。每次我调用写函数时,都会发生此错误。

"Reference.set failed: First argument contains undefined in property "

[错误显示在图像中。]

奇怪的是,每次我第一次使用新的Google帐户登录并写入Firebase时,它都会成功写入,但是下次我在保持登录状态下写入时,它不会写入,并且会发生错误。我正在尝试写两个单独的路径,“ userDetails”路径中的所有用户详细信息,以及“ userScores”路径中的高分。我正在使用用户“ Google ID”进行书写和阅读,这是用户使用Google帐户登录后获得的。我已附上“写入功能”,“读取功能”和“登录功能”的图片

function fb_writeRec() {
  console.log(db_write);
  userScores.highScore = hitsCntr;
  db_write("userDetails",userDetails.uid,userDetails); 
  console.table(userDetails);
  db_write("userScores",userScores); 
  console.table(userScores);
}
function db_write(_path,_key,_data) {
  console.log('db_WriteRec: ' + _path + '/' + _key + '  ' + _data);

  ref = database.ref(_path + '/' + _key).set(_data,function(error) {
      if (error != null) {
        console.log('error');
      }
    });
}
function fb_login(userDetails) {
  console.log('fb_login: dataRec= ' + userDetails);
  firebase.auth().onAuthStateChanged(newLogin);
  
  function newLogin(user) {
    if (user) {
      // user is signed in
      userDetails.uid      = user.uid;
      userDetails.email    = user.email;
      userDetails.name     = user.displayName;
      userDetails.photoURL = user.photoURL;
      loginStatus = 'logged in';
      db_read(BB,userScores);
      console.log(userScores)
    }
    else {
      // user NOT logged in,so redirect to Google login
      userDetails.uid      = '';
      userDetails.email    = '';
      userDetails.name     = '';
      userDetails.photoURL = '';
      loginStatus = 'logged out';
      var provider = new firebase.auth.GoogleAuthProvider();
      firebase.auth().signInWithRedirect(provider);
    }
  }
}
function db_read(_path,_data) {

  console.table(_data);
  console.log('db_ReadRec: ' + _path + '/' + _key);

  readStatus = 'waiting...'
  var ref = database.ref(_path + '/' + _key);
  ref.once('value',gotData,errData);


  function gotData(snapshot) {
      
    console.table(_data);
      if (snapshot.val()!=null){
        var dbData = snapshot.val();
        if(_path == 'userDetails') {
          fb_processDetails('OK',snapshot.key,dbData,_data);
        }
        else {
          fb_processScores('ok',_data)
          //display to screen
        }
      }
        else {
          if(_path == 'userDetails') {
            fb_processDetails('no');
          }
          else{
            fb_processScores('no');
          }
        }
      userDetails.uid = snapshot.key;
      userDetails.name = dbData.name;
      userDetails.email = dbData.email;
      userDetails.photoURL = dbData.photoURL
      userScores.score = dbData.score;
      readStatus = 'OK';
      console.log(userDetails.email + '/' + userDetails.name + '/' + userScores.score);
   } 
   
 
  
  function errData(err) {
    console.log(err);
    readStatus = 'error';
  }
} //end of db_read()

function fb_processScores (_result,_data) {
  if(_result == 'no'){
    //?
  }
  else {
    //console.table(dbData)
    _data.highScore=dbData.highScore
    console.table(_data)
    //alert(_data.highScore);
  }
  
  function fb_processDetails (_result,_dbData,_data) {
   if(_result == 'no') {
     //?
  }
    else {
      _data.uid = _key 
      _data.name =_dbData.name
      _data.email =_dbData.email
      _data.photoURL =_dbData.photoURL
    }
    
  }  
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...