介绍
使用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