C# Firesharp API如何获取新值?
我对C#Firesharp API有一些问题。我需要监听数据库中的新值。我的意思是,当新值添加到数据库中时,我应该立即获得这些值。我试着用定时器,但定时器工作得太慢,和我需要的不一样。有没有办法解决我的问题?我尝试了C#Firesharp API中的同步方法。但它只是把旧的价值记录给我 以下是我尝试过的:C# Firesharp API如何获取新值?,c#,firebase,winforms,firebase-realtime-database,C#,Firebase,Winforms,Firebase Realtime Database,我对C#Firesharp API有一些问题。我需要监听数据库中的新值。我的意思是,当新值添加到数据库中时,我应该立即获得这些值。我试着用定时器,但定时器工作得太慢,和我需要的不一样。有没有办法解决我的问题?我尝试了C#Firesharp API中的同步方法。但它只是把旧的价值记录给我 以下是我尝试过的: IFirebaseConfig firebaseConfig = new FirebaseConfig { AuthSecret = "", BasePath = "" };
IFirebaseConfig firebaseConfig = new FirebaseConfig
{
AuthSecret = "",
BasePath = ""
};
FirebaseClient client = new FirebaseClient(firebaseConfig);
EventStreamResponse response = await client.OnAsync("Test", Degistiginde);
private void Degistiginde(object sender, ValueAddedEventArgs args, object context)
{
MessageBox.Show(args.Data);
}
经过大量研究,我找到了一种有效的方法。 显然,项目github页面上的示例代码不起作用,我想它已经过时了 要使其正常工作,您必须将更新案例分开,如下所示:
EventStreamResponse response = await _client.OnAsync("yourfirebaseassetreference", added: (s, args, context) =>
{
Console.WriteLine(args.Data);
},
changed: (s, args, context) =>
{
Console.WriteLine(args.Data);
},
removed: (s, args, context) =>
{
Console.WriteLine(args);
});
问候。向OnAsync添加侦听器应首先为您提供节点的当前值,然后在数据库中的值发生更改时也会被调用。“你是说它没有做后者吗?”弗兰克凡帕夫伦不,不幸的是它什么也没有做。当我使用该方法时,它只记录一次节点并停止。但我试图从Firebase控制台添加值。应该添加到应用程序中吗?不,不需要。它应该反映两者。我不确定是什么原因导致它不能。希望其他人能发现这个问题。谢谢你的时间,我希望有人能告诉我这个问题。这应该是公认的答案。就是这样!