Android-返回相对于Firebase的布尔值

Android-返回相对于Firebase的布尔值,第1张

概述publicbooleancheckGold(finalintgold){mRef.addListenerForSingleValueEvent(newValueEventListener(){@OverridepublicvoidonDataChange(DataSnapshotdataSnapshot){Stringvalue=dataSnapshot.getValue(String.class);

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的布尔值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1094086.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存