Java 如何将数据从firebase数据库传递到sms?

Java 如何将数据从firebase数据库传递到sms?,java,android,firebase-realtime-database,Java,Android,Firebase Realtime Database,我从firebase数据库中获取数据,但当我将其传递给参数并使用它在SMS中写入时,它在SMS中仅获取一个数据,但当我使用toast时,它显示所有数据,但当我传递给SMS时,我仅获取一个数据?我的代码有什么问题?如何显示我在sms函数中检索到的所有数据下面是我的代码和firebasedatabase的屏幕截图,我想显示所有productName和quantity 谢谢你的帮助 ===smsSendToBtn(此代码用于从Firebasedatabase检索数据)=== ==设置msdata函数

我从firebase数据库中获取数据,但当我将其传递给参数并使用它在SMS中写入时,它在SMS中仅获取一个数据,但当我使用toast时,它显示所有数据,但当我传递给SMS时,我仅获取一个数据?我的代码有什么问题?如何显示我在sms函数中检索到的所有数据下面是我的代码和firebasedatabase的屏幕截图,我想显示所有productName和quantity

谢谢你的帮助

===smsSendToBtn(此代码用于从Firebasedatabase检索数据)===

==设置msdata函数===

  private void setSMSData (String myProductName, String myQuantity) {

            // add the phone number in the data
            Uri uri = Uri.parse("smsto:" + "09257777547");

            Intent smsSIntent = new Intent(Intent.ACTION_SENDTO, uri);
            // add the message at the sms_body extra field
            smsSIntent.putExtra("sms_body", "Order "+ myProductName +" "+ myQuantity +" (Sent Via 
 SKIP MOBILE)");
            try{
                startActivity(smsSIntent);
            } catch (Exception ex) {
                Toast.makeText(CartActivity.this, "Your sms has failed...",
                Toast.LENGTH_LONG).show();
                ex.printStackTrace();
            }

        }
这是一个例子

List<String> prods = new ArrayList<>();
List<String> quantity = new ArrayList<>();

smsSendToBtn.setOnClickListener(new View.OnClickListener() {
    //private String Cart;

    public void onClick(View view) {

        DatabaseReference reff = FirebaseDatabase.getInstance().getReference("Cart List");
        final DatabaseReference reff2= FirebaseDatabase.getInstance().getReference("Cart List");

        reff.child("User View").child(Prevalent.CurrentOnlineUsers.getPhone()).child("Products").addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                for(DataSnapshot snap: dataSnapshot.getChildren()){
                    String getDate = snap.getKey();
                    reff2.child("User View").child(Prevalent.CurrentOnlineUsers.getPhone()).child("Products").addValueEventListener(new ValueEventListener() {
                        @Override
                        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                            for(DataSnapshot snap1: dataSnapshot.getChildren()){

                                String myProductName = snap1.child("productName").getValue(String.class);
                                String myQuantity = snap1.child("quantity").getValue(String.class);
                                prods.Add(myProductName );
                                quantity.Add(myQuantity);

                                Toast.makeText(getApplicationContext(),myProductName + " " + myQuantity,Toast.LENGTH_SHORT).show();



                            }
                             setSMSData(prods,quantity);

                        }

                        @Override
                        public void onCancelled(@NonNull DatabaseError databaseError) {

                        }
                    });
                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

    }
List prods=new ArrayList();
列表数量=新的ArrayList();
smsSendToBtn.setOnClickListener(新视图.OnClickListener(){
//私人串车;
公共void onClick(视图){
DatabaseReference reff=FirebaseDatabase.getInstance().getReference(“购物车列表”);
final DatabaseReference reff2=FirebaseDatabase.getInstance().getReference(“购物车列表”);
reff.child(“用户视图”).child(流行的.CurrentOnlineUsers.getPhone()).child(“产品”).addValueEventListener(新的ValueEventListener()){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
对于(DataSnapshot快照:DataSnapshot.getChildren()){
字符串getDate=snap.getKey();
reff2.child(“用户视图”).child(流行的.CurrentOnlineUsers.getPhone()).child(“产品”).addValueEventListener(新的ValueEventListener()){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
对于(DataSnapshot snap1:DataSnapshot.getChildren()){
字符串myProductName=snap1.child(“productName”).getValue(String.class);
字符串myQuantity=snap1.child(“数量”).getValue(String.class);
产品添加(myProductName);
数量。添加(myQuantity);
Toast.makeText(getApplicationContext(),myProductName+“”+myQuantity,Toast.LENGTH\u SHORT).show();
}
设置MSDATA(产品、数量);
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
}
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
}
设置msdata

 private void  setSMSData(List<String> products,List<String> quantitys) {

        // add the phone number in the data
        Uri uri = Uri.parse("smsto:" + "09257777547");

        Intent smsSIntent = new Intent(Intent.ACTION_SENDTO, uri);
        // add the message at the sms_body extra field
        List<String> format = new ArrayList<>();
        int i=-1;
        foreach(String str in products){
        i++;
          format.Add(str+":"+quantitys[i];
        }
        String formats= Arrays.toString(format);

        smsSIntent.putExtra("sms_body", "Order "+formats+" (Sent Via SKIP MOBILE)");
        try{
            startActivity(smsSIntent);
        } catch (Exception ex) {
            Toast.makeText(CartActivity.this, "Your sms has failed...",
            Toast.LENGTH_LONG).show();
            ex.printStackTrace();
        }

    }
private void setmsdata(列出产品,列出数量){
//在数据中添加电话号码
Uri=Uri.parse(“smsto:”+“09257777547”);
意向smsSIntent=新意向(Intent.ACTION\u SENDTO,uri);
//在sms_body额外字段中添加消息
列表格式=新建ArrayList();
int i=-1;
foreach(产品中的字符串str){
i++;
格式.添加(str+“:“+quantitys[i];
}
字符串格式=数组.toString(格式);
短信内容putExtra(“短信正文”、“订单”+格式+”(通过手机发送)”;
试一试{
星触觉(smsSIntent);
}捕获(例外情况除外){
Toast.makeText(CartActivity.this,“您的短信已失败…”,
Toast.LENGTH_LONG).show();
例如printStackTrace();
}
}

code Updated,please copyHi bro,现在它将我获得的数据加倍了?如何去除这些数据,以及如何格式化短信:product quantiy,product quantity。我更新了
setmsdata()
,你说加倍是什么意思?它解决了问题吗?我在尝试代码时出错,foreach循环。String formats=Arrays.toString(格式);-无法解析方法“toString”
 private void  setSMSData(List<String> products,List<String> quantitys) {

        // add the phone number in the data
        Uri uri = Uri.parse("smsto:" + "09257777547");

        Intent smsSIntent = new Intent(Intent.ACTION_SENDTO, uri);
        // add the message at the sms_body extra field
        List<String> format = new ArrayList<>();
        int i=-1;
        foreach(String str in products){
        i++;
          format.Add(str+":"+quantitys[i];
        }
        String formats= Arrays.toString(format);

        smsSIntent.putExtra("sms_body", "Order "+formats+" (Sent Via SKIP MOBILE)");
        try{
            startActivity(smsSIntent);
        } catch (Exception ex) {
            Toast.makeText(CartActivity.this, "Your sms has failed...",
            Toast.LENGTH_LONG).show();
            ex.printStackTrace();
        }

    }