gpt4 book ai didi

android - 从 Firebase 中的多个位置接收到数据后继续执行

转载 作者:行者123 更新时间:2023-11-30 01:08:30 28 4
gpt4 key购买 nike

我知道这可能是一个常见问题,但我真的被困在这一点上。

我正在从 2 个多个位置接收数据,在从两个位置接收数据后,我需要继续执行并将该数据返回给调用方法。

我知道这个线程:https://stackoverflow.com/a/33204705/1820644但它实际上不适合这里,因为我需要将数据返回给调用方法。

对于阻塞UI线程的方法我可以从AsyncTask调用它,没有问题。但是如何将数据返回到我已经成功执行的调用方法。

这是在我的助手类中

// This method should be called in AsyncTask
public boolean doComputation() {
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("activity")
.child(id);

ref.child("path1").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Call 1 completed
}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});

ref.child("path2").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// Call 2 completed
}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});

// Some more to do

// Need to return true after execution complete
return true;
}

我无法在 onDataChange 内部返回 true,因为它将计入 onDataChange 方法而不是 doComputation

我可以通过将其移动到另一个方法来执行计算,并且在每次 onDataChange 回调之后我可以检查变量计数,如果它是 2 我可以执行计算。但在它完成后,我需要通知它执行完成的调用方法。

这对于 Firebase 来说有点棘手。但是,我现在真的被困住了。任何帮助都感激不尽。谢谢。

最佳答案

我已经使用了 Firebase 已经使用的 Tasks API。太棒了。

如@qbix 所述,This answer做同样的事情。答案中的例子解释得很好。

您还可以找到此 API 说明的视频链接 here .

我已经试过了。解决了我的问题。

关于android - 从 Firebase 中的多个位置接收到数据后继续执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38685879/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com