반응형
Firestore 실시간 쿼리를 백그라운드에서 재사용 가능(비용 절감)
Firestore에서 실시간 업데이트를 듣기 위해 Firebase-js-sdk(Vue PWA)를 사용한다.
앱이 백그라운드 상태일 때 복원하려면 앱 상태에 대해 "vuex-perist"를 사용하십시오.앱 상태 외에도 동일한 매개 변수를 사용하여 동일한 컬렉션에서 .onSnapshot을 호출하여 실시간 쿼리를 다시 설정해야 한다.
앱이 백그라운드로 가기 전에 요청했던 실시간 쿼리를 소방-js-sdk가 다시 사용할 수 있을지 궁금하다.그렇지 않으면 사용자가 백그라운드 및 백그라운드로 전환할 때마다 요금이 부과된다.
도와줘서 고마워, 토마스
해결책:문제는 어떻게 하면 복원(실시간 청취자 복원 포함)이 기술적으로 작동하게 할 것인가에 대한 것이 아니었다.나는 이런 실시간 청취자 복원이 일어날 때마다 어떻게 하면 혐의를 받지 않을 수 있을지에 주로 관심이 있었다.
다음 두 가지 답변에 따라:
- https://stackoverflow.com/a/46579895
- https://groups.google.com/d/msgid/google-cloud-firestore-discuss/c9866398-c65a-4d3e-8c2e-a41241b3d026%40googlegroups.com?utm_medium=email&utm_source=footer
다음과 같은 전제 조건이 충족될 경우 요금이 부과되지 않는다.
- 동일한 쿼리를 다시 생성(다시 동일한 이력서를 생성함)토큰. 이력서토큰은 Firestore serverside에서 쿼리를 다시 인식하기 위해 사용하는 키의 일종)
- 해당 쿼리의 결과 집합에 대한 데이터가 변경되지 않음(화력 저장소에서 최대 30분 동안 쿼리를 추적하고 변경 사항이 발생하면 결과 집합이 무효화됨)
- 클라이언트 SDK가 로컬 캐시된 결과 집합을 제공할 수 있도록 하는 지속성 사용
- 결과 집합은 지난 30분(소방서에서 질의를 추적하는 최대 시간) 내에 생성되었다.더 오래된 거면 질의응답을 다시 한 번 하고 난 그 댓가로 청구될거야
당신은 당신의 main.js에서 당신의 Firebase를 초기화해야 한다. 또는 기본적으로 어플리케이션이 시작되거나 전경에 다시 왔을 때 당신의 청취자가 분리되더라도, Firebase가 시작되어 새로운 청취자가 만들어질 수 있다.
그래서 당신의 메인 j에서는 다음과 같은 것을 가지게 될 것이다.
import Firebase from 'firebase'
let config = {
apiKey: "...",
authDomain: "...",
databaseURL: "...",
storageBucket: "...",
messagingSenderId: "..."
};
let app = Firebase.initializeApp(config)
let db = app.database()
let booksRef = db.ref('books')
//....etc///
설정이 올바르고 페이지가 로드될 때마다 실행되는 방법으로 수신기를 설정하는 경우, 항상 수신기가 있는 것이다.수신기를 여러 개 만들지 않도록 하십시오.
반응형
'programing' 카테고리의 다른 글
| 부에즈 페이로드는 돌연변이로 정의되지 않았다.'정의되지 않은 속성을 설정할 수 없음' (0) | 2022.05.21 |
|---|---|
| 언제 조립이 C보다 빠릅니까? (0) | 2022.05.20 |
| Vuejs 및 데이터 테이블: v-for를 사용하여 데이터를 채울 경우 빈 테이블 (0) | 2022.05.20 |
| Vue + 데이터 테이블 첫 번째 열 이미지 (0) | 2022.05.20 |
| Vuex 돌연변이 대상이 주에서 찾는 대신 페이로드로 통과됨 (0) | 2022.05.20 |