如何将增量发票编号放入 DatabaseReference

Posted

技术标签:

【中文标题】如何将增量发票编号放入 DatabaseReference【英文标题】:How to put the increment invoice number to DatabaseReference 【发布时间】:2019-11-04 07:03:25 【问题描述】:

我正在创建一个增量编号从 #1 #2 #3 .... 开始的发票,但我不知道如何开始。这是我想要的结构:

Invoice#1
|- info...
Invoice#2
|- info...
Invoice#3
|- info...
DatabaseReference ref 
 = FirebaseDatabase.getInstance().getReference().child("Invoice#" increment); //how to put increment here? if I declare i=1 in myActivity.java, it only runs in one

这是我拥有的发票模型的一部分

public class Invoice 
    String buyer, seller, typeOfPymt;
    int total;
    String billdate;
    int invoice_num;
    int discount;
    int tax;
    int grand_total;


    public Invoice(String buyer, String seller, int grand_total, String billdate, int invoice_num, int discount) 
        this.buyer = buyer;
        this.seller = seller;
        this.billdate = billdate;
        this.invoice_num = invoice_num;
        this.discount = discount;
        this.grand_total = grand_total;
    

如何在模型中添加增量?

【问题讨论】:

您可以在 sharedPreference 中添加最后一个增量 Integer 并在工作时将其添加 +1,保存它.. 【参考方案1】:

您无法将“增量”参数传递给 child() 方法,以帮助您读取最后一个发票编号并生成一个新的增量。

在您的数据库中,更合适的方法是使用由push() 方法生成的随机密钥作为发票的密钥,而不是那些递增的语音数字。主要原因是可扩展性,正如@FrankvanPuffelen 在以下帖子中所解释的那样:

How to create auto incremented key in Firebase?

使用上述方法,您的发票编号将成为您发票对象中的一个属性。

【讨论】:

以上是关于如何将增量发票编号放入 DatabaseReference的主要内容,如果未能解决你的问题,请参考以下文章

Rails + MySQL 中的发票编号

create_with_paypal 节点 sdk PayPal 中的发票编号

postgresql中的自定义自动增量字段(发票/订单号)

Oracle r12 - 发票凭证编号和发票序列号列

Magento:创建发票编号=订单号的发票?

如何在猫鼬中插入自动增量编号