【发布时间】:2020-07-26 00:28:04
【问题描述】:
我很紧张..我无法正常测试firebase云功能,因为很多东西都不起作用。我测试了它,我用不同的名称复制了相同的函数,新函数不起作用。 为什么???? 为什么工作 helloworld 而为什么不工作 tryhello???
云函数nodejs index.js:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
const db = admin.firestore();
exports.tryHello = functions.https.onCall((data, context) => {
let dataexample = {
name: 'examplename',
state: 'examplestate',
country: 'examplecountry'
};
let setDoc = db.collection('newexample').doc(data.text).set(dataexample);
return { text : "success. uid:" + context.auth.uid }
});
exports.helloWorld = functions.https.onCall((data, context) => {
let dataexample = {
name: 'examplename',
state: 'examplestate',
country: 'examplecountry'
};
let setDoc = db.collection('newexample').doc(data.text).set(dataexample);
return { text : "success. uid:" + context.auth.uid }
});
Unity C#:
public void testbutton()
{
var data = new Dictionary<string, object>();
data["text"] = "example";
//I tested "tryHello" and helloWorld"
FirebaseFunctions.DefaultInstance.GetHttpsCallable("tryHello")
.CallAsync(data).ContinueWith((task) =>
{
if (task.IsFaulted)
{
// Handle the error...
print("error");
}
else if (task.IsCompleted)
{
IDictionary snapshot = (IDictionary)task.Result.Data;
print("Result: " + snapshot["text"]);
}
}
结果:
1.首先我统一写:GetHttpsCallable("helloWorld") 并保存。
我开始游戏,登录,然后点击测试按钮。
结果: firebase 控制台:成功创建示例集合、示例文档、国家/地区:示例国家、名称:示例名称、状态:示例状态。好的好的。
统一日志:
1.用户登录成功:Jane Q. User (qQC3wEOU95eDFw8UuBjb0O1o20G2)
UnityEngine.Debug:LogFormat(String, Object[])
loginfire:b__10_0(Task1) (at Assets/loginfire.cs:155)
2. Result: success. uid:qQC3wEOU95eDFw8UuBjb0O1o20G2
UnityEngine.MonoBehaviour:print(Object)
<>c:<testbutton>b__16_0(Task1) (在 Assets/loginfire.cs:411)
System.Threading._ThreadPoolWaitCallback:PerformWaitCallback()
云函数“helloWorld”日志: 函数执行开始 函数执行耗时 3020 毫秒,完成状态码:200
好的。我在 Firebase 控制台中删除了“示例”集合。
2。二、我统一写:GetHttpsCallable("tryHello") 并保存。
我开始游戏,登录,然后点击测试按钮。
结果:没有创建集合。
统一日志:
*1。用户登录成功:Jane Q. 用户 (qQC3wEOU95eDFw8UuBjb0O1o20G2) UnityEngine.Debug:LogFormat(String, Object[]) loginfire:b__10_0(Task`1) (在 Assets/loginfire.cs:155) System.Threading._ThreadPoolWaitCallback:PerformWaitCallback()
- 错误 UnityEngine.MonoBehaviour:打印(对象) c:b__16_0(Task`1) (在 Assets/loginfire.cs:396) System.Threading._ThreadPoolWaitCallback:PerformWaitCallback()*
云函数“tryHello”日志: 没什么……
为什么? 我不明白。一样,只是名字不同!
而且.. 在许多情况下它显示成功但仍然不更新数据库。或者只是很久以后。为什么?最近“helloWorld”也经常报错,如果我登录后不立即按testbutton,就读不到uid。
我从一开始就开始厌倦这个系统。
谢谢..
【问题讨论】: