我是 C# Xamarin 新手。我这里有一个示例 Java 类(来自 this tutorial )。对我来说,使用 xamarin.firebase.database 在 C# 中实现 ValueEventListener 很困难。你愿意帮助我吗?谢谢。
public class ChatInteractor implements ChatContract.Interactor {
private static final String TAG = "ChatInteractor";
@Override
public void sendMessageToFirebaseUser(final Context context, final Chat chat, final String receiverFirebaseToken) {
final DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
databaseReference.child(Constants.ARG_CHAT_ROOMS).getRef().addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
@Override
public void getMessageFromFirebaseUser(String senderUid, String receiverUid) {
final DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
databaseReference.child(Constants.ARG_CHAT_ROOMS).getRef().addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
最佳答案
首先:您是否有适用于 Firebase Android SDK
的 Xamarin Android 绑定(bind)?如果不这样做,您就无法真正遵循任何 Java-Android 教程,因为 Firebase 特定的类/接口(interface)将不存在。如果是这种情况:安装https://www.nuget.org/packages/Xamarin.Firebase.Database/
如果你这样做 - 实现这样的接口(interface): (内联实现 - 就像您可以在 java 中所做的那样;并且在您的示例中完成 - C# 中不支持。因此您必须创建一个常规类)
public class MyValueEventListener : Java.Lang.Object, Firebase.Database.IValueEventListener
{
public void OnCancelled(DatabaseError error)
{
throw new NotImplementedException();
}
public void OnDataChange(DataSnapshot snapshot)
{
throw new NotImplementedException();
}
}
并将其作为事件监听器传递
DatabaseReference databaseReference = FirebaseDatabase.Instance.Reference;
databaseReference.Child(Constants.ARG_CHAT_ROOMS).Ref.AddListenerForSingleValueEvent(new MyValueEventListener())
关于c# - 如何在对象 DatabaseReference Xamarin.Firebase.Database 中使用接口(interface) IValueEventListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42499066/