📜  firestore 将分数保存为数字而不是 js 中的字符串 - Javascript (1)

📅  最后修改于: 2023-12-03 15:30:46.657000             🧑  作者: Mango

Firestore 将分数保存为数字而不是 JavaScript 中的字符串 - JavaScript

Firebase Firestore 是 Google 推出的一款云端 NoSQL 数据库服务,它的数据类型包括数字、字符串、布尔值、日期、地理位置等等。在使用 Firestore 存储分数等数字数据的时候,需要注意数字类型和字符串类型的区别。

为什么要使用数字类型

Firestore 中的数字类型有很多优点,例如:

  • 数字类型比字符串类型更紧凑,节省存储空间。
  • 数字类型支持各种数字运算,便于进行计算。
  • 数字类型可以直接在 Firestore 的查询中进行比较和排序,便于数据统计和分析。
如何将分数保存为数字

在 JavaScript 中,如果将分数存储为字符串类型,例如 "90",它在 Firestore 中会被认为是一个字符串类型,而不是一个数字类型。这样就会导致查询和比较分数数据时效率低下。

因此,在将分数保存到 Firestore 时,应该将其转换为数字类型,例如:

const score = 90;
const scoreRef = db.collection('scores').doc();
scoreRef.set({
  score: score,
});

在 Firestore 中,上述代码会将分数保存为数字类型,而不是字符串类型。

如何从 Firestore 中读取数字

从 Firestore 中读取数字数据和字符串数据的方法基本相同,只需要注意进行类型转换:

const scoreSnap = await scoreRef.get();
const scoreData = scoreSnap.data();
const score = scoreData.score;
console.log(typeof score); // "number"

上述代码从 Firestore 中读取保存的分数,并将其转换为数字类型。

总结

在 Firestore 中,存储数字类型的数据有很多优势。因此,在存储分数等数字数据时,应该将其保存为数字类型,而不是字符串类型。从 Firestore 中读取数字数据也需要注意进行类型转换。