簡體   English   中英

如何將數據從Firebase數據庫傳遞到SMS?

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

我正在從Firebase數據庫中獲取數據,但是當我將其傳遞給參數並用於在SMS中寫入數據時,它僅在SMS中獲得一個數據,但是當我使用Toast時,它將顯示所有數據,但是當我傳遞給SMS時,只得到一個? 我的代碼有什么問題? 以及如何顯示我在sms函數中檢索到的所有數據,這是我的代碼和firebasedatabase的屏幕截圖,我想顯示所有productName和數量。

謝謝您的幫助

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函數===

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

            }
        });

    }

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