简体   繁体   English

如何将数据从Firebase数据库传递到SMS?

[英]How to pass Data from firebase database to sms?

I am getting a data from my firebase database, but when I pass it to a parameter and use it to write in SMS it only get one data in SMS, but when I use toast it displays all the data but when i pass to sms i only getting one? 我正在从Firebase数据库中获取数据,但是当我将其传递给参数并用于在SMS中写入数据时,它仅在SMS中获得一个数据,但是当我使用Toast时,它将显示所有数据,但是当我传递给SMS时,只得到一个? whats wrong in my code? 我的代码有什么问题? and how can I display all data i retrieve in my sms function bellow are my code and a screenshot of my firebasedatabase, I want to display all productName and quantity. 以及如何显示我在sms函数中检索到的所有数据,这是我的代码和firebasedatabase的屏幕截图,我想显示所有productName和数量。

thank you for your help 谢谢您的帮助

Firebasedatabase Example Firebasedatabase示例

=== smsSendToBtn (This code is for retrieving the data from the Firebasedatabase) === === smsSendToBtn(此代码用于从Firebasedatabase检索数据)===

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


                                }

                            }

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

                            }
                        });
                    }
                }

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

                }
            });

        }

=== setSMSdata function === === setSMSdata函数===

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

        }

This is an example 这是一个例子

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

            }
        });

    }

SetSMSData SetSMSData

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

    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM