Я хочу сделать остальные API для моей базы данных Firestore для моей игры Unity. Я не хочу подключаться напрямую к базе данных, потому что игровой комплекс logi c, я хочу, чтобы приложение logi c контролировалось на сервере, чтобы избежать вмешательства со стороны клиента.
Итак, я хочу каждую запись и каждый запрос на чтение через облачные функции! Это нормально?
Функция записи в базу данных Firestore с облачными функциями очень проста:
Облачная функция без сервера 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"]);
}
});
}
Работает хорошо. Но как читать базу данных? (Не в режиме реального времени, только один простой запрос.)
Я прочитал это: Вызов функций из вашего приложения - документы по облачным функциям
И это: Получить данные один раз - Firestore docs
Но я не вижу, как получить данные с помощью облачных функций. Я не хочу триггер, я хотел бы использовать облачные функции в качестве остальных API. Таким образом, каждое чтение и запись в базу данных Firestore через облачные функции. Разве это не возможно? Если возможно, то как?
Спасибо!