如何通过Unity SDK将数组存储到Firebase

时间:2018-11-06 06:58:45

标签: arrays firebase unity3d firebase-realtime-database

我正在尝试将Int32 []数组和bool []数组存储到Firebase,但它对我不起作用。我在各个地方进行了搜索,但是找不到解决方案。谁能告诉我,如何从Unity将数组存储到Firebase Real-time DB。

我正在使用$paginator = new Paginator($filteredBundles, 15); // 15 is items per page 获取类System.Reflection的所有公共静态字段。

这是代码,我正在尝试完成这项工作...

UserPrefs

上面的代码保存除数组以外的所有值。数组上给出的错误如下:

  

InvalidCastException:无法从源类型转换为目标   类型。   Firebase.Database.Internal.Utilities.Validation.ValidateWritableObject   (System.Object对象)

任何帮助将不胜感激...

2 个答案:

答案 0 :(得分:0)

您需要一个这样的课程。

public class MyClass
{
    public int[] intArray = new int[10];
}

然后您可以像这样将对象写入Firebase。

public void WriteArrays()
{
    MyClass temp = new MyClass();

    for (int i = 0; i < temp.intArray.Length; i++)
    {
        temp.intArray[i] = i;
    }

    databaseReference.Child("MyArrayNode").SetRawJsonValueAsync(JsonUtility.ToJson(temp));
}

databaseReference 是对您的根的引用。

您也可以通过同样的方式为 bool [] 做到这一点。

答案 1 :(得分:0)

对于更通用的解决方案,您可以复制建议使用here的JsonHelper类。

用法示例:

string jsonArray = JsonHelper.ToJsonArray(mySerializeableList);
var nodeToUpdate = this.dbReference.Child("wantedNode");
nodeToUpdate.SetRawJsonValueAsync(jsonArray);