Android 为Firebase子价格增加价值
请看我的数据库图片。我想给family1中的user1价格加200,给family2中的user2价格加300,给family3中的user1价格加500 我试过什么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
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!");
}
}
});
}