使用Firebase更新和检索Unity上的数据,性能问题

时间:2018-04-08 20:14:51

标签: firebase unity3d firebase-realtime-database

我想获得智能手机的陀螺仪值并将其发送到另一个。我设法设置一个值并检索它,但结果非常滞后,以下方法是否正确?

如果没有,我可以改变什么?

如果是,他们是另一种设置值并在Unity中实时检索它的方法吗?

//UPDATING THE VALUE
reference = FirebaseDatabase.DefaultInstance.RootReference;
Dictionary<string, object> gyro = new Dictionary<string, object>();
gyro["keyToUpdate"] = valueToUpdate;
reference.Child("parentKey").UpdateChildrenAsync(gyro);

// RETRIEVING THE VALUE
FirebaseDatabase.DefaultInstance
.GetReference("parentKey")
.Child("keyToUpdate")
.GetValueAsync().ContinueWith(task => {
    if (task.IsFaulted) {
        Debug.Log("error");
    }
    else if (task.IsCompleted) {
    DataSnapshot snapshot = task.Result;
    float valueUpdated = float.Parse(snapshot.Value.ToString());
    Debug.Log(valueUpdated);
    }
});

2 个答案:

答案 0 :(得分:0)

Firebase基本上比你想象的要慢。这属于其性能界限。

答案 1 :(得分:0)

通过任何异步调用,您永远无法确定收到响应的速度有多快或多慢。请记住,Firebase通过一个系统进行路由,该系统包含用于处理身份验证和分散数据等内容的元素。

如果您继续使用Firebase,则需要确保您的代码和用户界面设置为允许可能长时间无法控制的延迟。或者您可以花费大量时间来构建自己的基础架构,如DoctorPangloss所述。