import { queryWorkoutSamplesWithAnchor, WorkoutActivityType } from '@kingstinct/react-native-healthkit'// Initial querylet anchor: string | undefinedconst initialResult = await queryWorkoutSamplesWithAnchor({ filter: { workoutActivityType: WorkoutActivityType.running, }, limit: 100, anchor: undefined, // first query})console.log(`Initial: ${initialResult.workouts.length} workouts`)anchor = initialResult.newAnchor// Subsequent query - only gets changes since last queryconst updateResult = await queryWorkoutSamplesWithAnchor({ filter: { workoutActivityType: WorkoutActivityType.running, }, limit: 100, anchor, // use saved anchor})console.log(`New workouts: ${updateResult.workouts.length}`)console.log(`Deleted workouts: ${updateResult.deletedSamples.length}`)anchor = updateResult.newAnchor // save for next time// Handle deletionsfor (const deleted of updateResult.deletedSamples) { console.log(`Workout ${deleted.uuid} was deleted on ${deleted.deletedDate}`)}
Anchored queries are ideal for syncing workout data efficiently. The anchor tracks the state of the HealthKit database, so subsequent queries only return changes since the last query.