Firebase Unity - 权限缺失或不足

时间:2021-06-03 09:47:55

标签: firebase unity3d google-cloud-firestore

我已经在 Unity 上使用 Firebase(身份验证、云存储等)近两年了,没有出现任何问题。 几个星期以来,当我在 Unity 中按下播放键时,出现错误 Missing or insufficient permissions。经过调试,我发现当我调用时:

FirebaseFirestore.DefaultInstance.Collection("users").Document("userID")
   .GetSnapshotAsync().ContinueWithOnMainThread(task => { ... });

task.IsFaulted 返回 true,异常消息为 Missing or insufficient permissions

值得注意的是,在获取文档快照之前,登录过程已正确完成(Firebase 身份验证会自动登录用户)。

我所做的是在 FirebaseAuth.DefaultInstance.SignOut() 时添加 task.IsFaulted 并尝试再次登录,但我遇到了同样的错误。

但是,如果我在播放模式下等待几分钟,然后再次尝试登录,则没有错误,并且登录成功。因此,我不认为这是 Firebase 规则的问题,尤其是因为我最近没有更改任何内容。

我可以继续工作,但每次按下播放键尝试新功能时都要等待几分钟,这很麻烦。

你对我能做什么有什么想法吗?

我使用的是 Unity LTS 2019.4.22 和 Firebase 7.2.0

编辑:

当我在 iPhone 或 Android 上尝试时,而不是直接在编辑器中尝试时,问题不会发生。当我启动应用程序时,我会自动登录,并且正确获取了数据库中的 userData。 相反,在编辑器中,我自动登录,但是,当我尝试获取用户时,我得到了 Missing or insufficient permissions

我已经 Debug.Log 以确保用户在尝试获取数据库之前正确登录,as shown here

编辑 2:

这是创建这些日志的代码。

1 - 我初始化 Firebase 并监听 StateChanged 事件

2 - 当事件被触发时,我记录第一条消息,然后我检查用户是否登录,然后我用他的 id 记录第二条消息(我使用 Firebase documentation )

3 - 然后我尝试获取用户文档,如果 task.IsFaulted,我退出,然后我记录错误消息

code

0 个答案:

没有答案