我有一個帶有多個系統的手機游戲來賺錢(交易或通過優惠墻)。
玩家可以在 3 種型別的“金幣”包之間進行選擇,因此很明顯,如果他們有必要的金幣數量,他們可以多次請求相同的包。
但是我的代碼有問題:
public void mediumPack(String emailMP) {
Date date = Calendar.getInstance().getTime();
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
Date previousDate = calendar.getTime();
String dateString = dateFormat.format(previousDate);
HashMap<String, Object> map = new HashMap<>();
map.put("amount", 5000);
map.put("email", emailMP);
map.put("date", dateString);
map.put("status", MPStatus);
DatabaseReference referenceMP = FirebaseDatabase.getInstance().getReference().child("demandMP").child(user.getUid());
referenceMP.child("Medium Pack")
.setValue(map)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Toast.makeText(MediumPackActivity.this, "Success", Toast.LENGTH_SHORT).show();
finish();
} else {
Toast.makeText(MediumPackActivity.this, "Error: " task.getException().getMessage(), Toast.LENGTH_SHORT).show();
}
}
});
}
getMP.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String emailMP = emailMediumPack.getText().toString();
if (TextUtils.isEmpty(emailMP)) {
emailMediumPack.setError("Invalid put mail");
return;
}
mediumPack(emailMP);
}
});
因此在創建帳戶時已經創建了子“ demandMP”和 uid。
在uid中我想添加referenceMP,一切正常,但問題是嘗試多次后可以創建單個參考(如果我使用另一個電子郵件地址,它只會修改“Medium Pack”中的電子郵件
有沒有辦法創建多個參考?
否則,我想創建一個隨機票而不是名稱“Medium Pack”,考慮到這種可能性有人可以告訴我如何創建一個看起來像這樣的隨機票:
MP-XX...(18 chars)-5000
uj5u.com熱心網友回復:
如果要在Medium Pack每次代碼運行時生成唯一的子節點,請push()像這樣呼叫:
DatabaseReference referenceMP = FirebaseDatabase.getInstance().getReference().child("demandMP").child(user.getUid());
referenceMP.child("Medium Pack")
.push() // ??
.setValue(map)
...
每次呼叫push()Firebase 時都會生成一個新的唯一 ID,然后您可以使用它來設定值。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/336704.html
