Skip to content

GetValueAsync() in Realtime Database often enters infinite wait #1371

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Open
king24371 opened this issue Apr 23, 2024 · 1 comment
Open

GetValueAsync() in Realtime Database often enters infinite wait #1371

king24371 opened this issue Apr 23, 2024 · 1 comment
Labels
new New issue.

Comments

@king24371
Copy link

[REQUIRED] Please fill in the following fields:

  • Unity editor version: 2021.3.29
  • Firebase Unity SDK version: 10.0.1
  • Source you installed the SDK: Unity Package Manager
  • Problematic Firebase Component: RealtimeDatabase
  • Other Firebase Components in use: Auth
  • Additional SDKs you are using: Facebook, UnityAds, Google playgames services
  • Platform you are using the Unity editor on: Windows
  • Platform you are targeting: Android
  • Scripting Runtime: Mono and IL2CPP

[REQUIRED] Please describe the issue here:

In yesterday, reading and writing data was working fine.
However, this morning when I opened the editor to test the game, I was often unable to read the data in the database. I tried different login methods, including Email and Facebook. Among them, FB could not receive the data every time I executed it, while email is some times good and some times bad, and even if it receive data, it is also from the past.
After searching with different prints, I found that the problem lies here: GetUserReference().Child("logs").GetValueAsync();
I used a coroutine to execute this function. I found that when it reaches this line, it often waits indefinitely and then there is no result.

Relevant Code:

IEnumerator LoadID()
{
print("Load ID");
var task = GetUserReference().Child("logs").GetValueAsync();
print("catch the data from base");
yield return new WaitUntil(() => task.IsCompleted);
print("wait for end of coroutine");

    if (task.IsFaulted || task.IsCanceled)
    {
        print(task.Exception);
        yield break;
    }

    DataSnapshot snapshot = task.Result;
    print("retuen result: " + snapshot);
    if (snapshot.Value != null)
    {
        print("load player data");
        LoadJson(snapshot);
        StartCoroutine(LoadCats());
        StartCoroutine(LoadBuilds());
    }
    else
    {
        //SaveID();
        print("no data");
        SaveJson_F();
        //authManager.validateSignIn(true);
    }
}
@king24371 king24371 added the new New issue. label Apr 23, 2024
@google-oss-bot
Copy link

This issue does not seem to follow the issue template. Make sure you provide all the required information.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
new New issue.
Projects
None yet
Development

No branches or pull requests

2 participants