2017-12-23 38 views
2

누구나 Firestore 거래에서 여러 개의 가져 오기를 구현하는 방법을 알고 있습니까?Firestore 거래, 여러 번 가져 오기

파이어 스토어에 저장되어있는 알려지지 않은 길이의 파이어 스토어 참조 배열이 있습니다. 각 참조에는 {count : number}가 포함되어 있으며 각 참조에 하나만 추가하려고합니다. 이 작업을 수행하려면 트랜잭션을 사용해야한다고 확신하며 여러 문서를 사용할 수 있다고하지만 문서를 구현하는 방법을 잘 모르겠습니다.

필자는 각각의 레퍼런스를 얻고, 기존 카운트를 어레이에 저장하고, 각각을 하나씩 추가하고, 모든 것을 Firestore에 다시 저장할 필요가 있다고 생각합니다. 이 구현하려고 할 때마다 실패합니다. Firestore 트랜잭션에서 여러 개의 가져 오기를 사용하는 예는 아마도 내가 가야 할 필요가 있지만, 문서 나 온라인에서 찾을 수있는 한 모든 것이 없습니다.

답변

2

당신은 당신이 arrayOfReferences의 각 경우 FireStore 참조를 반복해야하기 때문에 에게 Promise.all를 사용해야합니다.

setCount(arrayOfReferences){ 
    return this.db.runTransaction(t => { 
    return Promise.all(arrayOfReferences.map(async (element) => { 
     const doc = await t.get(element); 
     const new_count = doc.data().count + 1; 
     await t.update(element, { count: new_count }); 
    })); 
    }); 
} 

하는 카운터 경우 FireStore에서 작동하는 방법에 대한 자세한 내용을 알고 얻으려면, 당신은 documentation을 읽을 수 있습니다

난 그냥 아래의 코드에 따라, 당신을 위해 예제를 만들어 그것을 테스트.