【发布时间】:2020-04-11 12:34:38
【问题描述】:
我想为我的 Unity 游戏的 Firestore 数据库制作 rest api。 我不想直接连接数据库,因为游戏逻辑复杂,我想把应用逻辑控制在服务器端,避免客户端篡改。
所以我想通过云函数的每一个写入和每一个读取请求! 还好吗?
用云函数将函数写入Firestore数据库非常简单:
云功能 serverless nodejs index.js:
exports.helloWorld = functions.https.onCall((data, context) => {
let data = {
name: 'Los Angeless',
state: 'CA',
country: 'USA'
};
// Add a new document in collection "cities" with ID 'LA'
let setDoc = db.collection('xy').doc(data.text).set(data);
return { text : "ok" } });
Unity c#:
public void writeexample()
{
var data = new Dictionary<string, object>();
data["text"] = “example”;
data[“xy”] = “example”;
FirebaseFunctions.DefaultInstance.GetHttpsCallable(“helloWorld”)
.CallAsync(data).ContinueWith((task) =>
{
if (task.IsFaulted)
{
// Handle the error...
}
else if (task.IsCompleted)
{
// DataSnapshot snapshot = task.Result;
IDictionary snapshot = (IDictionary)task.Result.Data;
print(“Result:” + snapshot["text"]);
}
});
}
效果很好。 但是如何读取数据库呢? (不是实时的,只有一次简单的查询。)
我读到这个:Call functions from your app - 云函数文档
还有这个:Get data once - Firestore 文档
但我不明白,如何通过云功能获取数据。 我不想触发,我想使用云函数作为休息 api。所以每次对 Firestore 数据库的读写都是通过云功能进行的。不可能吗?如果可能,怎么做?
谢谢!
【问题讨论】:
标签: c# unity3d google-cloud-firestore google-cloud-functions