登录后,Firebase数据库停止工作

时间:2017-07-31 13:49:14

标签: firebase unity3d firebase-realtime-database firebase-authentication

我使用非常简单的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。

0 个答案:

没有答案