Firebase中的Android Studio价值增加

Firebase中的Android Studio价值增加,第1张

概述当我单击AndroidStudio应用程序时,谁能教我如何更新Firebase值?无需检索和显示数据.我的Firebase只是价值的增量.例如,Firebase计数器值现在为0,单击按钮时如何在Firebase中增加计数器值?我尝试使用下面的代码,但无法正常工作.importcom.firebase.client.Firebase;publicclass

当我单击Android Studio应用程序时,谁能教我如何更新Firebase值?无需检索和显示数据.我的Firebase只是价值的增量.例如,Firebase计数器值现在为0,单击按钮时如何在Firebase中增加计数器值?我尝试使用下面的代码,但无法正常工作.

import com.firebase.clIEnt.Firebase;public class Voting extends AppCompatActivity {private button msendData;int counter;    private  Firebase mRef;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_voting);        Firebase.setAndroIDContext(this);        mRef = new Firebase("https://lollol.firebaseio.com/");        msendData = (button) findVIEwByID(R.ID.Votethis);        msendData.setonClickListener(new VIEw.OnClickListener() {            @OverrIDe            public voID onClick(VIEw vIEw) {                Firebase mRefChild = mRef.child("Booth A");                mRefChild.setValue(counter++);            }

解决方法:

为了增加Firebase数据库中的值,首先,您需要检索该值.在不知道的情况下无法增加值.为此,我绝对建议您使用Firebase Transaction.

让我们举个例子.假设我们要增加一个计数器.为此,请使用以下代码设置计数器的默认值.

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();rootRef.child("score").setValue(1);

假设分数字段的类型为Integer,要使用交易,请使用以下方法:

public static voID setscore(String operation) {    DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();    DatabaseReference scoreRef = rootRef.child("score");    scoreRef.runTransaction(new Transaction.Handler() {        @OverrIDe        public Transaction.Result doTransaction(MutableData mutableData) {            Integer score = mutableData.getValue(Integer.class);            if (score == null) {                return Transaction.success(mutableData);            }            if (operation.equals("increasescore")) {                mutableData.setValue(score + 1);            } else if (operation.equals("decreasescore")){                mutableData.setValue(score - 1);            }            return Transaction.success(mutableData);        }        @OverrIDe        public voID onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot) {}    });}

使用事务,如果用户试图同时增加/减少分数,您将避免结果不一致.因此,作为结论,请根据您的增加/减少 *** 作调用此方法.

如果您想阅读分数,请使用以下代码:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();DatabaseReference scoreRef = rootRef.child("score");ValueEventListener eventListener = new ValueEventListener() {    @OverrIDe    public voID onDataChange(DataSnapshot dataSnapshot) {        Integer score = dataSnapshot.getValue(Integer.class);        Log.d("TAG", "score: " + score);    }    @OverrIDe    public voID onCancelled(DatabaseError databaseError) {}};scoreRef.addListenerForSingleValueEvent(eventListener);
总结

以上是内存溢出为你收集整理的Firebase中的Android Studio价值增加全部内容,希望文章能够帮你解决Firebase中的Android Studio价值增加所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1095717.html

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

发表评论

登录后才能评论

评论列表(0条)

保存