
public boolean checkGold(final int gold){ mRef.addListenerForSingleValueEvent(new ValueEventListener() { @OverrIDe public voID onDataChange(DataSnapshot dataSnapshot) { String value = dataSnapshot.getValue(String.class); goldparse = Integer.parseInt(value); if (gold > goldparse){ /*Return*/ } } @OverrIDe public voID onCancelled(FirebaseError firebaseError) { } }); return false;}我有方法在外面检查黄金,但如何在onDataChange方法中返回false.谢谢.
解决方法:
Firebase数据库是异步的,它的流程超出了我们通常执行的常规流程. In this post,我试图解释一下(仅供参考)
在这种情况下,您会执行以下 *** 作,对吧?
boolean iWantValue = checkGold(10);if (iWantValue) { // do someting} else { // do something else}...public boolean checkGold(final int gold) { ... // content here are still the same as mentioned in question}但是,如果我们知道它是异步的,应该是这样的:
int currentGold = 0; // place gold here so it can be accessed anywhere...// wherever you want to check gold, type thiscurrentGold = 10; // update this value first, right?checkGold();...public voID checkGold() { mRef.addListenerForSingleValueEvent(new ValueEventListener() { @OverrIDe public voID onDataChange(DataSnapshot dataSnapshot) { String value = dataSnapshot.getValue(String.class); goldparse = Integer.parseInt(value); if (currentGold > goldparse){ // do something } else { // do something here } } ... });}或者,如果您像我一样想要整洁的东西:
public voID checkGold() { mRef.addListenerForSingleValueEvent(new ValueEventListener() { @OverrIDe public voID onDataChange(DataSnapshot dataSnapshot) { doSomethingOrNot(Integer.parseInt(dataSnapshot.getValue(String.class))); } ... });}private voID doSomethingOrNot(int goldparse) { if (currentGold > goldparse){ // do something } else { // do something here }}熟悉它需要时间,但这是值得的.希望这可以帮助
总结以上是内存溢出为你收集整理的Android-返回相对于Firebase的布尔值全部内容,希望文章能够帮你解决Android-返回相对于Firebase的布尔值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)