为了账号安全,请及时绑定邮箱和手机立即绑定

如何将数据从firebase数据库传递到短信?

如何将数据从firebase数据库传递到短信?

慕标5832272 2023-08-04 10:08:40
我正在从我的 firebase 数据库获取数据,但是当我将其传递给参数并使用它在短信中写入时,它只能在短信中获取一个数据,但是当我使用 toast 时,它会显示所有数据,但是当我传递给短信时,我只得到一个?我的代码有什么问题吗?我如何显示我在短信功能中检索到的所有数据,下面是我的代码和我的 firebaseddatabase 的屏幕截图,我想显示所有产品名称和数量。感谢您的帮助基于Fire的数据库示例=== smsSendToBtn(此代码用于从 Firebased 数据库检索数据)=== 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);                                    Toast.makeText(getApplicationContext(),myProductName + " " + myQuantity,Toast.LENGTH_SHORT).show();                                    setSMSData(myProductName,myQuantity);                                }                            }
查看完整描述

1 回答

?
森林海

TA贡献2011条经验 获得超2个赞

这是一个例子


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) {


            }

        });


    }

设置短信数据


 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();

        }


    }


查看完整回答
反对 回复 2023-08-04
  • 1 回答
  • 0 关注
  • 105 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信