Вставьте данные в базу данных FIrebase в другую базу данных Firebase, используя Java - PullRequest
0 голосов
/ 19 апреля 2020

enter image description here

enter image description here

На первом изображении я хочу, чтобы дети находились под узлами - "19042020111313" & «19042020111506» - которые находятся под узлами «Список корзин -> Представление администратора -> 1122 -> Продукты» для вставки в узел «19042020185310» под узлом «Отгрузка», который является вторым изображением. Как это сделать? Обратите внимание, что я не хочу, чтобы узлы "19042020111313" и "19042020111506" (на первом изображении) были вставлены в узел "Отгрузка" (на втором изображении).

Это то, что я пробовал :

public class AdminNewOrdersActivity extends AppCompatActivity {

private RecyclerView ordersList;
private DatabaseReference cartListRef,shipRef;
private String saveCurrentDate,saveCurrentTime,productRandomKey;

//some more code here


private void addOrderToShipment(String uid, String uName, String uPhone, String uAddress, String uCity, String uState, String uPin, String uTotalAmount, String uDate, String uTime){

    Calendar calendar=Calendar.getInstance();

    SimpleDateFormat currentDate=new SimpleDateFormat("ddMMyyyy");
    saveCurrentDate=currentDate.format(calendar.getTime());

    SimpleDateFormat currentTime=new SimpleDateFormat("HHmmss");
    saveCurrentTime=currentTime.format(calendar.getTime());

    productRandomKey=saveCurrentDate+saveCurrentTime;

    HashMap<String,Object> shipMap=new HashMap<>();
    shipMap.put("PID",productRandomKey);
    shipMap.put("UserName",uName);
    shipMap.put("UserPhone",uPhone);
    shipMap.put("UserAddress",uAddress);
    shipMap.put("UserCity",uCity);
    shipMap.put("UserState",uState);
    shipMap.put("UserPin",uPin);
    shipMap.put("TotalAmount",uTotalAmount);
    shipMap.put("Date",saveCurrentDate);
    shipMap.put("Time",saveCurrentTime);

    shipRef.child(productRandomKey).updateChildren(shipMap)
            .addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if(task.isSuccessful()){
                        //startActivity(new Intent(AdminAddNewProductActivity.this,AdminCategoryActivity.class));
                    }else{
                        String message=task.getException().toString();
                    }
                }
            });

    cartListRef= FirebaseDatabase.getInstance().getReference()
            .child("Cart List").child("Admin View").child(uid).child("Products");

    cartListRef.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            for(DataSnapshot ds:dataSnapshot.getChildren()){
                String uKey= ds.getKey();
                String uValue=ds.getValue().toString();

                HashMap<String,Object> shipMap=new HashMap<>();
                shipMap.put(uKey,uValue);

                shipRef.child(productRandomKey).updateChildren(shipMap)
                        .addOnCompleteListener(new OnCompleteListener<Void>() {
                            @Override
                            public void onComplete(@NonNull Task<Void> task) {
                                if(task.isSuccessful()){
                                    //startActivity(new Intent(AdminAddNewProductActivity.this,AdminCategoryActivity.class));
                                    /
                                }else{
                                    //String message=task.getException().toString();
                                    //Toast.makeText(AdminNewOrdersActivity.this,"Error: " + message,Toast.LENGTH_SHORT).show();
                                }
                            }
                        });
            }
        }

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

        }
    });
}
}

Проблема в том, что l oop получает все данные из узлов "Список корзин -> Вид администратора -> 1122 -> Продукты", но они вставляются в узел "Отгрузка" -> "19042020185310" как один узел. Как мне вставить его как отдельные пары ключ-значение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...