- Home /
Firebase Cloud Functions with Unity using HTTP-callable function. Help needed.
Hi! I'm trying to send string(name) to Cloud Functions, make Cloud Function do a search in "AllCharacterNames" node by received string(name) from Unity, and then, return found result string back to Unity (even if string null or empty). Problem is - i can't get response back to Unity. I would appreciate if someone help me. Thanks!
My Unity function:
private void CheckIfNameExists(string name)
{
var function = functions.GetHttpsCallable("checkName");
function.CallAsync(name).ContinueWithOnMainThread((response) =>
{
Debug.Log("response = " + response.Result.Data.ToString());
if (response.IsFaulted || response.IsCanceled)
{
Firebase.FirebaseException e = response.Exception.Flatten().InnerExceptions[0] as Firebase.FirebaseException;
FunctionsErrorCode error = (FunctionsErrorCode)e.ErrorCode;
Debug.LogError("Fault!");
Debug.Log("FunctionsErrorCode! = " + error);
}
else
{
string returnedName = response.Result.Data.ToString();
if (returnedName == name)
{
//Name already exists in database
}
else if (string.IsNullOrEmpty(returnedName))
{
//Name doesn't exist in database
}
}
});
}
My Cloud Function:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.checkName = functions.https.onCall(async (data) => {
const name = data;
console.log("NAME IS = " + name);
var dbRef = admin.database().ref("AllCharacterNames");
dbRef.orderByValue().equalTo(name).once("value").then((snap) => {
var exists = (snap.val() !== null);
if (exists) {
snap.forEach((childSnapshot) => {
var key = childSnapshot.key;
var childData = childSnapshot.val();
console.log("childData IS = " + childData);
return childData;
})
}
return null;
}).catch(error => {
console.log(error);
response.status().send(error);
});
});
In Cloud Functions console i can see
console.log("childData IS = " + childData);
result with searched string. Problem is
return childData;
doesn't return that string back to Unity. Am i doing something wrong?
Your answer
![](https://koobas.hobune.stream/wayback/20220613011450im_/https://answers.unity.com/themes/thub/images/avi.jpg)
Follow this Question
Related Questions
Error when creating http request. GET request with custom headers is not supported. 3 Answers
Empty response headers with WWW + Firefox 0 Answers
Reliable way to download textures 1 Answer
Unity 5.5.3 Android Connection Refused for HTTP Requests 0 Answers
Get data from REST works on Unity but not on Android Device 1 Answer