【发布时间】:2018-12-12 23:07:32
【问题描述】:
我正在使用 C# 使用 Unity,并且需要在场景开始时获取快照。但我需要只获得一次快照。 到目前为止,我发现的所有示例都使用某种事件侦听器来获取快照,这意味着快照可以被某些事件覆盖。 创建事件侦听器后(按照教程),我使用 if 语句解决了这个问题。
我正在使用的代码:
DataSnapshot dbSnapshot; // <-- the snapshot I need to use later
void Start(){
StartListener();
// Other stuff happens...
}
protected void StartListener() {
dbRoot.ValueChanged += (
object sender2, ValueChangedEventArgs e2) => {
if (e2.DatabaseError != null) {
Debug.LogError(e2.DatabaseError.Message);
return;
}
Debug.Log("ValueChangedEventArgs");
if (e2.Snapshot != null || e2.Snapshot.Value != null){
if (dbSnapshot == null){
// This happens once, and prevents the dbSnapshot from being overwritten
dbSnapshot = e2.Snapshot;
}
}
};
}
这似乎可行,但我想知道是否可以在没有事件侦听器的情况下获取快照,或者至少是否有更优雅的解决方案。
【问题讨论】:
标签: c# firebase unity3d firebase-realtime-database