介绍

使用Unity的时候自己搭建数据库服务器比较麻烦。这种时候很方便云数据库是。

有几种类型的云数据库,但这次火库我想介绍一下

关于 Firestore 的文章已经很多了,所以我将介绍这些文章并以我自己的方式将它们放在一起。

什么是 Firestore

由谷歌提供NoSQL 类型的数据库

什么是 NoSQL

什么是 NoSQL不仅是 SQL它是关系数据库以外的数据库的缩写。从名字上可能会被误解为NotSQL(不是SQL),其实它是SQL的一种。

Firestore的结构

  • 在关系数据库中,表称为集合,列称为文档 ID。
  • 有类似json的结构,文档ID在集合中,有时集合在文档ID中。
  • 顶层以外的集合称为子集合

这篇文章有助于理解概述

另外,官方文档是日文的,量也不多,我觉得还是好好看看吧。

操作数据

下面的代码是用C#编写的,其他语言请参考官方文档。

基本上它是通过指定 Collection 和 id 来操作数据的图像

插入

dataBase = FirebaseFirestore.DefaultInstance;

// 追加データの用意
Dictionary<string, object> data = new Dictionary<string, object>()
{
   {"Name", "Hoge"},
};

// id未指定(自動で生成されます)
Task writeTask = dataBase.Collection(Collection).Document().SetAsync(data);

// id指定
Task writeTask = dataBase.Collection(Collection).Document(id).SetAsync(data);

选择

var db = FirebaseFirestore.DefaultInstance;
QuerySnapshot getData = await db.Collection(Collection).GetSnapshotAsync();
foreach (var document in getData.Documents)
{
    Dictionary<string, object> DictionaryData = document.ToDictionary();
    // idが一致するものを検索
		if (document.Id.Equals(id))
    {
				Debug.log(DictionalyData["Name"].ToString())
    }

}

更新

var db = FirebaseFirestore.DefaultInstance;
Dictionary<string, object> data = new Dictionary<string, object>()
{
   {"Name", "sayyyyy"},
};

DocumentReference OriginData = db.Collectn(Collection).Document(id);

OriginData.UpdateAsync(data);

删除

var db = FirebaseFirestore.DefaultInstance;
DocumentReference DeleteData = db.Collection(Collection).Document(id);
DeleteData.DeleteAsync();

获取信息的转换

由于类型不同,无法直接使用获取的数据。因此,对于获得的数据投掷有必要描述要执行的过程。

// String
docDictionary["path"].ToString();

// int
(int) Convert.ChangeType(docDictionary["path"], typeof(int));

// bool
(bool) Convert.ChangeType(docDictionary["path"], typeof(bool));

// array
(List<object>) Convert.ChangeType(docDictionary["path"], typeof(List<object>));

// timestamp
(Timestamp) Convert.ChangeType(docDictionary["path"], typeof(Timestamp));

堵塞的地方

我忘记更改 Firestore 端的权限,无法访问数据库。我花了很多时间...

实现自动增量

与 RDBMS 不同,Firestore 似乎默认不支持自动增量。嗯,没错,但是...

下面的文章解释了如何实现它。

参考资料


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308628060.html

相关文章:

  • 2022-01-19
  • 2022-02-09
  • 2021-12-07
  • 2021-05-20
  • 2021-08-12
  • 2022-02-09
  • 2021-07-10
猜你喜欢
  • 2021-06-17
  • 2021-04-03
  • 2021-06-28
  • 2021-08-27
  • 2022-02-02
  • 2022-01-11
  • 2021-08-01
相关资源
相似解决方案