提问者:小点点

Firebase数据库错误:系统错误。收藏。通用的字典'2[系统.字符串,系统.对象]


Firebase数据库在应用程序中的其他类似操作之间需要时无法下载数据。

系统。收藏。通用。词典'2[System.字符串,系统。对象]

Firebase有时在应用程序和抛出系统的类似操作中无法执行do newGetValueASync。收藏。通用的Dictionary2[System.String,System.Object]`作为快照值。

复制步骤:安装任何具有实时数据库的统一项目,执行不间断多次:。(3).持续任务

public void aaaa() {
    Reference.Child("Users").OrderByChild("About/XP").StartAt(1).LimitToFirst(12).GetValueAsync().ContinueWithOnMainThread(task => {
      if (task.IsFaulted) {

        return;
      } else if (task.IsCompleted) {
        DataSnapshot Snapshot = task.Result;
        if (Snapshot != null)
          Debug.Log(Snapshot.Value);
        return;
      }
      return;

    });

共1个答案

匿名用户

如果您在字典上使用ToString(这是Debug.Log在内部所做的),或者在一般情况下,任何类型的对象都没有显式实现它,那么它只返回与GetType()相同的值。全名

对象的默认实现。ToString方法返回对象类型的完全限定名。

所以它看起来像是一个字典

如果你想看到你想做的所有项目。

foreach(var kvp in Snapshot.Value)
{
    Debug.Log($"Key: {kvp.Key}, Value: {kvp.Value}");
}

注意:虽然键是一个字符串,但该值可能再次是一个未实现ToString的类型,在这种情况下,它将再次简单地打印出类型名称。

如果您真的想打印出整个结构(只要值是可序列化的),您可以使用Newtonsoft JSON。Net并将整个字典转换为人类可读的JSON格式。

请参阅序列化词典

string json = JsonConvert.SerializeObject(Snapshot.Value, Formatting.Indented);
Debug.Log(json);