从数据库读取的值是NaN

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从数据库读取的值是NaN相关的知识,希望对你有一定的参考价值。

我在Firebase中遇到问题,当我尝试从数据库中读取值时,我得到一个NaN值。

var database = firebase.database();

// Initializing our click count at 0
var clickCounter = 0;

// should read the value in the database:
database.ref().once('value').then(function(snapshot){
  clickCounter = snapshot.clickCount;
});

// On Click
$("#click-button").on("click", function() {

  // Add 1 to clickCounter
  clickCounter++;

  database.ref().set({
    clickCount: clickCounter
  });

基本上,如果我删除函数来从数据库中读取值(代码的第3行),那么当我单击按钮时,数据库中的值会更新。但是,刷新后,单击该按钮会将数据库中的clickCount重置为1,因为clickCounter在第一行中初始化为0。

当然,这只是意味着我需要从数据库中读取值,以便浏览器刷新不会将clickCounter重置为0。

当我包含从数据库中读取值的函数时,我收到此错误:Uncaught Error: Reference.set failed: First argument contains NaN in property 'clickCount'

答案

从越过documentation,我看到了这个例子:

var userId = firebase.auth().currentUser.uid;
return firebase.database().ref('/users/' + userId).once('value').then(function(snapshot) {
var username = (snapshot.val() && snapshot.val().username) ||   'Anonymous';
 // ...
});

在你的代码中:

// should read the value in the database:
database.ref().once('value').then(function(snapshot){
  clickCounter = snapshot.clickCount; //<--- Missing access of .val()
});

你需要 :

clickCounter = snapshot.val()。clickCount;

以上是关于从数据库读取的值是NaN的主要内容,如果未能解决你的问题,请参考以下文章

asp读取MSSQL数据库中某个字段的值

从Excel向MATLAB中导入数据出现了nan怎么处理

Apache Spark (PySpark) 在读取 CSV 时处理空值

kotlin-从一个片段更改多个片段的小数位

这三个特殊的浮点值是啥意思:正无穷大、负无穷大、NaN?

NaN 和 None 有啥区别?