
我得到所有數量的價格。但我不知道如何將它們全部添加到一個字串下。有人可以幫忙嗎
FirebaseDatabase mFirebaseDatabase = FirebaseDatabase.getInstance();
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference databaseReference = mFirebaseDatabase.getReference().child("cart").child(uid);
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
for (DataSnapshot dataSnapshot: snapshot.getChildren()) {
Log.d("dasdasdasdad", String.valueOf(dataSnapshot));
String quantityprice = (String) dataSnapshot.child("quantityprice").getValue();
Log.d("quantityprice", String.valueOf(quantityprice));
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
在這里,我得到了日志中的所有數量價格值,即:- 130,55,150
但我不知道如何將它們全部添加到一個字串下。任何幫助,將不勝感激。
我也試過這個
DatabaseReference databaseReference = mFirebaseDatabase.getReference().child("cart").child(uid);
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
for (DataSnapshot dataSnapshot: snapshot.getChildren()) {
Log.d("dasdasdasdad", String.valueOf(dataSnapshot));
Integer total = 0;
String quantityprice = (String) dataSnapshot.child("quantityprice").getValue();
Log.d("quantityprice", String.valueOf(quantityprice));
int price = Integer.valueOf(quantityprice);
total = price;
Log.d("total",total); }
但 total 始終顯示不同。
這是日志
D/數量價格:130 D/總價:130
D/數量價格:55 D/總計:55
D/數量價格:150 D/總價:150
uj5u.com熱心網友回復:
要解決此問題,請使用以下代碼行:
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
DatabaseReference db = FirebaseDatabase.getInstance().getReference();
DatabaseReference productsRef = db.child("card").child(uid);
productsRef.get().addOnCompleteListener(new OnCompleteListener<DataSnapshot>() {
@Override
public void onComplete(@NonNull Task<DataSnapshot> task) {
if (task.isSuccessful()) {
double total = 0.00;
for (DataSnapshot ds : task.getResult().getChildren()) {
String quantityPrice = ds.child("quantityprice").getValue(String.class);
total = Double.parseDouble(quantityPrice);
}
Log.d("TAG", "total: " total);
} else {
Log.d("TAG", task.getException().getMessage()); //Don't ignore potential errors!
}
}
});
logcat 中的結果將是:
total: 335.00
解決這個問題的關鍵是String將資料庫中的值決議為double. 請記住,如果您需要數字,最好將它們作為數字而不是字串值存盤在資料庫中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/400056.html
上一篇:FirebaseFirestore使用現有的用戶資料后端集成聊天
下一篇:滑動時如何不重繪螢屏
