Mover o copiar datos de un nodo a otro en la base de datos de base de fuego

Estoy tratando de mover mis datos presentes en un nodo, es decir, cart_details / UID a otro nodo pedidos / UID / pedido1. Intenté diferentes maneras de hacerlo, pero todas parecen ser un poco confusas. ¿Existe alguna funcionalidad o método incorporado que pueda facilitar el trabajo? Cualquier ayuda es apreciada.

He adjuntado la imagen por la misma. IMAGEN

Te recomiendo que uses este método:

public void copyRecord(Firebase fromPath, final Firebase toPath) { fromPath.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { toPath.setValue(dataSnapshot.getValue(), new Firebase.CompletionListener() { @Override public void onComplete(FirebaseError firebaseError, Firebase firebase) { if (firebaseError != null) { System.out.println("Copy failed"); } else { System.out.println("Success"); } } }); } @Override public void onCancelled(FirebaseError firebaseError) {} }); } 

Esta es una copia y no un movimiento como probablemente vea, por lo que el original permanecerá en su lugar original. Si desea eliminar, puede usar el método removeValue() en fromPath justo después de System.out.println("Success"); .

Edición: (03 de mayo de 2018).

Aquí está el código para usar el nuevo Api.

 private void moveRecord(DatabaseReference fromPath, final DatabaseReference toPath) { ValueEventListener valueEventListener = new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { toPath.setValue(dataSnapshot.getValue()).addOnCompleteListener(new OnCompleteListener() { @Override public void onComplete(@NonNull Task task) { if (task.isComplete()) { Log.d(TAG, "Success!"); } else { Log.d(TAG, "Copy failed!"); } } }); } @Override public void onCancelled(DatabaseError databaseError) {} }; fromPath.addListenerForSingleValueEvent(valueEventListener); }