Android 为Firebase子价格增加价值

Android 为Firebase子价格增加价值,android,firebase-realtime-database,Android,Firebase Realtime Database,请看我的数据库图片。我想给family1中的user1价格加200,给family2中的user2价格加300,给family3中的user1价格加500 我试过什么 DatabaseReference databasefamilly1 = FirebaseDatabase.getInstance().getReference().child("wdatabase").child("familly1").child("user1").child("price"); databasefamill

请看我的数据库图片。我想给family1中的user1价格加200,给family2中的user2价格加300,给family3中的user1价格加500

我试过什么

DatabaseReference databasefamilly1 = FirebaseDatabase.getInstance().getReference().child("wdatabase").child("familly1").child("user1").child("price");
databasefamilly1.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        long moneyUser1 = (long) dataSnapshot.getValue();
        long priceAdd = 200;
        long newMoney = moneyUser1 + priceAdd;


        DatabaseReference databasefamilly1Update = FirebaseDatabase.getInstance().getReference().child("wdatabase").child("familly1");
        final HashMap<String, Object> commandeData = new HashMap<>();
        commandeData.put("price", newMoney);

        databasefamilly1Update.child("user1").updateChildren(commandeData)
                .addOnCompleteListener(new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(@NonNull Task<Void> task) {
                        if (task.isSuccessful()){


                            DatabaseReference databasefamilly2 = FirebaseDatabase.getInstance().getReference().child("wdatabase").child("familly2").child("user2").child("price");
                            databasefamilly2.addListenerForSingleValueEvent(new ValueEventListener() {
                                @Override
                                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                                    long moneyUser1 = (long) dataSnapshot.getValue();
                                    long priceAdd = 300;
                                    long newMoney = moneyUser1 + priceAdd;


                                    DatabaseReference databasefamilly2Update = FirebaseDatabase.getInstance().getReference().child("wdatabase").child("familly2");
                                    final HashMap<String, Object> commandeData = new HashMap<>();
                                    commandeData.put("price", newMoney);

                                    databasefamilly2Update.child("user2").updateChildren(commandeData)
                                            .addOnCompleteListener(new OnCompleteListener<Void>() {
                                                @Override
                                                public void onComplete(@NonNull Task<Void> task) {
                                                    if (task.isSuccessful()){


                                                        DatabaseReference databasefamilly3 = FirebaseDatabase.getInstance().getReference().child("wdatabase").child("familly3").child("user1").child("price");
                                                        databasefamilly3.addListenerForSingleValueEvent(new ValueEventListener() {
                                                            @Override
                                                            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                                                                long moneyUser1 = (long) dataSnapshot.getValue();
                                                                long priceAdd = 200;
                                                                long newMoney = moneyUser1 + priceAdd;


                                                                DatabaseReference databasefamilly3Update = FirebaseDatabase.getInstance().getReference().child("wdatabase").child("familly3");
                                                                final HashMap<String, Object> commandeData = new HashMap<>();
                                                                commandeData.put("price", newMoney);

                                                                databasefamilly3Update.child("user1").updateChildren(commandeData)
                                                                        .addOnCompleteListener(new OnCompleteListener<Void>() {
                                                                            @Override
                                                                            public void onComplete(@NonNull Task<Void> task) {
                                                                                if (task.isSuccessful()){

                                                                                    Toast.makeText(getContext(), "Success", Toast.LENGTH_SHORT).show();
                                                                                }else {
                                                                                    loading.dismiss();
                                                                                    String message = task.getException().toString();
                                                                                    Toast.makeText(getContext(), "Error"+ message, Toast.LENGTH_SHORT).show();

                                                                                }
                                                                            }
                                                                        });



                                                            }

                                                            @Override
                                                            public void onCancelled(@NonNull DatabaseError databaseError) {
                                                            }

                                                        });
                                                    }else {
                                                        loading.dismiss();
                                                        String message = task.getException().toString();
                                                        Toast.makeText(getContext(), "Error"+ message, Toast.LENGTH_SHORT).show();

                                                    }
                                                }
                                            });



                                }

                                @Override
                                public void onCancelled(@NonNull DatabaseError databaseError) {
                                }

                            });

                        }else {
                            loading.dismiss();
                            String message = task.getException().toString();
                            Toast.makeText(getContext(), "Error"+ message, Toast.LENGTH_SHORT).show();

                        }
                    }
                });



    }

    @Override
    public void onCancelled(@NonNull DatabaseError databaseError) {
    }

});
DatabaseReference databasefamilly1=FirebaseDatabase.getInstance().getReference().child(“wdatabase”).child(“familly1”).child(“user1”).child(“price”);
DatabaseFamily1.addListenerForSingleValueEvent(新值EventListener()){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
long moneyUser1=(long)dataSnapshot.getValue();
长期价格加总=200;
long newMoney=moneyUser1+priceAdd;
DatabaseReference DatabaseFamily1Update=FirebaseDatabase.getInstance().getReference().child(“wdatabase”).child(“Family1”);
final HashMap commandeData=new HashMap();
征用数据。出售(“价格”,新币);
DatabaseFamily1Update.child(“user1”).updateChildren(commandeData)
.addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
DatabaseReference databasefamilly2=FirebaseDatabase.getInstance().getReference().child(“wdatabase”).child(“familly2”).child(“user2”).child(“price”);
DatabaseFamily2.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
long moneyUser1=(long)dataSnapshot.getValue();
长期价格加总=300;
long newMoney=moneyUser1+priceAdd;
DatabaseReference DatabaseFamily2Update=FirebaseDatabase.getInstance().getReference().child(“WDDatabase”).child(“Family2”);
final HashMap commandeData=new HashMap();
征用数据。出售(“价格”,新币);
DatabaseFamily2Update.child(“user2”).updateChildren(commandeData)
.addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
DatabaseReference databasefamilly3=FirebaseDatabase.getInstance().getReference().child(“wdatabase”).child(“familly3”).child(“user1”).child(“price”);
DatabaseFamily3.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
long moneyUser1=(long)dataSnapshot.getValue();
长期价格加总=200;
long newMoney=moneyUser1+priceAdd;
DatabaseReference DatabaseFamily3Update=FirebaseDatabase.getInstance().getReference().child(“wdatabase”).child(“Family3”);
final HashMap commandeData=new HashMap();
征用数据。出售(“价格”,新币);
DatabaseFamily3Update.child(“user1”).updateChildren(commandeData)
.addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
Toast.makeText(getContext(),“Success”,Toast.LENGTH_SHORT.show();
}否则{
loading.dispose();
字符串消息=task.getException().toString();
Toast.makeText(getContext(),“Error”+消息,Toast.LENGTH_SHORT.show();
}
}
});
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
}否则{
loading.dispose();
字符串消息=task.getException().toString();
Toast.makeText(getContext(),“Error”+消息,Toast.LENGTH_SHORT.show();
void incrementPrice(final long value) {
        moneyRef.runTransaction(new Transaction.Handler() {
            @Override
            public Transaction.Result doTransaction(MutableData mutableData) {
                if (mutableData.getValue() == null) {
                    mutableData.setValue(value);

                } else {
                    Long money = mutableData.getValue(Long.class);
                    assert money != null;
                    int x = money.intValue();
                    Long incrementMoney = x + value;
                    mutableData.setValue(incrementMoney);
                }
                return Transaction.success(mutableData);

            }

            @Override
            public void onComplete(DatabaseError databaseError, boolean b, DataSnapshot dataSnapshot) {
                if (databaseError != null) {
                    Log.d("TAG", "Firebase counter increment failed!");
                } else {
                    Log.d("TAG", "Firebase counter increment succeeded!");
                }

            }
        });

    }