Firebase 侦听器在 Java(Android) 中被阻止
Posted
技术标签:
【中文标题】Firebase 侦听器在 Java(Android) 中被阻止【英文标题】:Firebase listener is blocked in Java(Android) 【发布时间】:2014-04-14 20:15:26 【问题描述】:我有一个简单的onChildAdded
侦听器集,但它似乎不起作用:
listRef.addChildEventListener(new ChildEventListener()
@Override
public void onChildAdded(DataSnapshot snapshot,
String previousChildName)
Log.d("DEBUG","A child has been added!");
// Do stuff...
// Other unimplemented methods for ChildEventListener here...
);
while(true);
我正在向 listRef 添加孩子,但没有任何反应。
while(true)
行是为了演示我的问题,即处理程序只能在其他所有操作完成后才能触发!在这种情况下,它永远不会。当我删除此行时,它会起作用。
我认为这是设计使然。有没有办法让它在这些情况下工作,不管后面发生什么?
谢谢
【问题讨论】:
【参考方案1】:while(true)
将永久阻止线程接收事件,因为 android 客户端使用主线程发布事件。
可以设置不同的线程通过Config.setEventTarget()接收事件
在这种情况下,EventTarget 被传递给 Runnable 的实例,它负责运行以接收事件。
【讨论】:
以上是关于Firebase 侦听器在 Java(Android) 中被阻止的主要内容,如果未能解决你的问题,请参考以下文章
Firebase:Flutter:避免事务崩溃 CloudFirestorePlugin.java:613 : .then() vs async/await
在上传完成之前调用 Firebase Storage onSuccess