我使用非常简单的2种方法创建了一个新的Unity项目:
public class FirebaseScripts : MonoBehaviour {
public void One()
{
FirebaseApp.DefaultInstance.SetEditorDatabaseUrl("https://xxxxx.firebaseio.com/");
FirebaseDatabase.DefaultInstance.RootReference.Child("test").SetValueAsync("TEST").ContinueWith( task => {
Debug.Log(task.IsCanceled + " " + task.IsCompleted + " " + task.IsFaulted);
});
}
public void Two()
{
FirebaseAuth.DefaultInstance.SignInWithEmailAndPasswordAsync("xxx@xxx.com","test").ContinueWith( task => {
Debug.Log(task.IsCanceled + " " + task.IsCompleted + " " + task.IsFaulted);
Debug.Log(task.Result.Email);
});
}
}
数据库的安全设置为 public ,这意味着任何人都可以读取或写入。
在确认One()
时,它会打印False True False
,当我查看Firebase控制台时,它确实会显示新记录。
致电One()
后,我可以致电Two()
登录,它也会返回False True False
。表示登录成功。我也可以根据需要随时拨打One()
。
但是,如果我先调用Two()
,它仍会返回False True False
但现在One()
停止工作。致电One()
后,将在固定时间间隔内显示警告:
01/02/0001 17:42:30 [警告] PersistentConnection:pc_0 - 已提供 身份验证凭据无效。这通常表明你的 FirebaseApp实例未正确初始化。确保你的 数据库URL是正确的,您的服务帐户是用于 正确的项目,并有权访问它。
我再也无法从方法One()
得到答案。 (直到我退出播放模式并再次输入,这将清除登录会话)为什么会发生这种情况?为什么我必须首先用One()
“加热”Firebase以使登录不会导致问题?
SDK版本为4.0.2。