firebaseDatabase=firebaseDatabase.getInstandatabaseReference=firebaseDatabase.getReference()Query Query=databaseReference.child(“ticket_detail”).orderbychild(“ticket_no”).limittoLast(1);AddListenerForSingleValueEvent(new ValueEventListener(){@override public void onDataChange(@nonnull@notnull DataSnapshot snapshot){
if (snapshot.getValue()!=null){
String reslt = snapshot.getValue().toString();
String [] role = reslt.split(",");
String tiketno = role[4];
String [] ref = tiketno.split("HDTICKET",2);
int number = Integer.parseInt(ref[1])+1;
final String Tktno = "HDTICKET"+number;
HashMap<String,Object> hashMap = new HashMap<>();
hashMap.put("TICKET_NO",Tktno);
hashMap.put("TICKET_DATE",ticketdt);
hashMap.put("UID",usrid);
hashMap.put("MESSAGE",msg);
hashMap.put("TICKET_STATUS",ticktstatus);
hashMap.put("DONE_BY",doneby);
hashMap.put("CLOSED_DATE",donedate);
databaseReference.child("TICKET_DETAIL")
.child(Tktno)
.setValue(hashMap)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void unused) {
//Toast.makeText(RaiseTicket.this, "Ticket Generated successfully", Toast.LENGTH_SHORT).show();
RaiseTicket.this.finish();
Intent sucess = new Intent(RaiseTicket.this, RaiseTicketsuccess.class);
String user = Tktno;
sucess.putExtra("TICKET#",user);
startActivity(sucess);
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull @NotNull Exception e) {
Toast.makeText(RaiseTicket.this, ""+e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
} else {
final String Tktno = "HDTICKET5000001";
HashMap<String,Object> hashMap = new HashMap<>();
hashMap.put("TICKET_NO",Tktno);
hashMap.put("TICKET_DATE",ticketdt);
hashMap.put("UID",usrid);
hashMap.put("MESSAGE",msg);
hashMap.put("TICKET_STATUS",ticktstatus);
hashMap.put("DONE_BY",doneby);
hashMap.put("CLOSED_DATE",donedate);
databaseReference.child("TICKET_DETAIL")
.child(Tktno)
.setValue(hashMap)
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void unused) {
//Toast.makeText(RaiseTicket.this, "Ticket Generated successfully", Toast.LENGTH_SHORT).show();
RaiseTicket.this.finish();
Intent sucess = new Intent(RaiseTicket.this, RaiseTicketsuccess.class);
String user = Tktno;
sucess.putExtra("TICKET#",user);
startActivity(sucess);
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull @NotNull Exception e) {
Toast.makeText(RaiseTicket.this, ""+e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
}
@Override
public void onCancelled(@NonNull @NotNull DatabaseError error) {
}
});
没有对其进行构建的方法。也不要在列表中使用这些值作为键。如果您需要这样的增量数字,请为其构建自己的逻辑。最好的方法是使用云函数,并在列表中创建新元素时添加增量字段。
我可以在这里向您展示我们公司的一个例子,我们需要为您的物流任务增加数字,并在它们之前加上一个前缀。代码如下:
if (!eventSnapshot.child("cmr").exists()) {
////console.log(`No cmr in task!`)
const lastCMRRef = admin.database().ref(`/cmr/${terminalUid}`);
lastCMRRef
.transaction((number) => {
return (number || 0) + 1;
})
.then(({ committed, snapshot }) => {
if (committed) {
const cmr = snapshot.val();
const formatedCMR = `${terminal.name}${`000000${cmr}`.slice(-6)}`;
let update = { cmr: formatedCMR };
return eventSnapshot.ref.update(update);
}
});
}
它在这里被减少了,只是为了增加。不要以为它是在云函数中运行的。这样,不管后端是什么,我们都自动化了流程。唯一的缺点是,它在创建和获得增量数字之间有一点滞后。
我需要firebase来存储任何模型的自动增量Id数据,我应该做什么?
我使用Firebase实时数据库作为后端。我希望每个请求最多增加1个。例如: 这不管用。 在前端,我发送“数据1”。我应该如何创建“.validate”规则?
我在一个Android应用程序中使用Firebase数据库,每次用户启动时,我都会在数据库中存储一些值,为此我会执行以下操作: 正如您在子方法中看到的,如果称为“usrId”,它将创建usrId目录,并在其中添加所有neccesary信息。但是我想为每个用户创建目录,所以我尝试传递usrId变量作为参数。但它不起作用。当我调试代码时,调试器说本地var usrId无法识别,我的问题是如何在Fire
我目前正在做一个项目,该项目使用Arduino收集数据并将数据存储在云端,并将数据显示在移动应用程序的云端。从我尝试过的情况来看,Arduino只能将数据上传到Firebase实时数据库,但我的Flutter移动应用程序需要将数据存储在FiRest中。当实时数据库发生变化时,有没有办法将firebase实时数据库数据自动写入Fiback? 这是实时数据库结构:实时数据库结构 我想将数据附加到Fir
我有一个数据库: 当用户()在应用程序中注册时,他会填充另一个用户uid(该用户uid具有属性)并将自己的uid添加到他的个人资料中(