firebase / firebase/firebase-js-sdk

FR: provide maxAge option in PersistenceSettings of enableIndexedDbPersistence() to invalidate cache after specified time

Open
#6,920 4 comments 2 reactions 1 assignee Claimed by @cherylEnkidu View on GitHub
api: firestore feature request
Dominant language
TypeScript
Stars
5.1k
Forks
1k
Avg merge
2d 21h
Merged PRs (30d)
37

Description

### Describe your environment

* Operating System version: Ventura 13.0
* Browser version: Chrome 108.0.5359.124
* Firebase SDK version: 9.14.0
* Firebase Product: firestore

### Describe the problem

Problem:
- In current project, user data does not change often . If cached data exists, I retrieve it using `getDocFromCache()`. Else, I retrieve from server using `getDoc()`.

In some cases:
- user can change the data from different device or browser. In such cases, data would not be reflected if force cached is enabled.

Probable Solution:
- introduce maxAge property to enableIndexedDbPersistence to auto delete cached data if it was not updated within defined time (to get the fresh entry from the server)

#### Relevant Code:

```javascript
enableIndexedDbPersistence(db, {maxAge: 86400}) // database will remain in local storage for 86400s (1 day) without any update.
.catch((err) => {
console.warn('Failed to persist data: ', err.code, err.message);
});

```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.