我需要將資料從屬于一個集合的檔案傳輸到另一個集合。怎么做都沒有關系(重命名檔案中的子集合,或者復制資料然后洗掉它)。
我知道一個例子,但我需要對其進行詳細分析,最好有一個例子。
同樣的例子:
delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
moveFirestoreDocument();
}
});
}
public void moveFirestoreDocument(DocumentReference fromPath, final DocumentReference toPath) {
fromPath.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
@Override
public void onComplete(@NonNull Task<DocumentSnapshot> task) {
if (task.isSuccessful()) {
DocumentSnapshot document = task.getResult();
if (document != null) {
toPath.set(document.getData())
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
fromPath.delete()
.addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
}
});
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
}
});
} else {
}
} else {
}
}
});
}
移動特定記錄的代碼:
delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
CollectionReference addToCartRef1 = firestore.collection("AddToCart");
DocumentReference addToCartRef2 = addToCartRef1.document(auth.getCurrentUser().getUid());
CollectionReference addToCartRef3 = addToCartRef2.collection("Product");
DocumentReference fromPath = addToCartRef3.document("DiaSef1RX9xlAFm26P8M");
CollectionReference deletedAddToCartRef1 = firestore.collection("AddToPurchased");
DocumentReference deletedAddToCartRef2 = deletedAddToCartRef1.document(auth.getCurrentUser().getUid());
CollectionReference deletedAddToCartRef3 = deletedAddToCartRef2.collection("Product");
DocumentReference toPath = deletedAddToCartRef3.document("DiaSef1RX9xlAFm26P8M");
moveFirestoreDocument(fromPath, toPath);
}
});
資料庫結構
資料庫結構的延續
uj5u.com熱心網友回復:
如何準確地為“fromPath”和“toPath”分配集合?
“fromPath”和“toPath”不是集合參考,而是檔案參考。由于該moveFirestoreDocument()方法包含兩個引數,因此您必須呼叫該方法并將兩個檔案參考作為引數傳遞。因此,假設您有兩個如下所示的集合:
Firestore-root
|
--- products (collection)
| |
| --- $productId (document)
| |
| --- //Document details.
|
--- deletedProducts (collection)
|
--- $productId (document)
|
--- //Document details.
要將檔案從一個集合移動到另一個集合,請使用以下代碼行:
FirebaseFirestore db = FirebaseFirestore.getInstance();
CollectionReference productsRef = db.collection("products");
DocumentReference fromPath = productsRef.document(productId);
CollectionReference deletedProductsRef = db.collection("deletedProducts");
DocumentReference toPath = deletedProductsRef.document(productId);
moveFirestoreDocument(fromPath, toPath);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/481044.html
