Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
With changes to the Firestore structure, accessor classes such as
ios
,android
, andjs
have been moved to extended properties out of necessity. This PR aims to simplify the boilerplate for this by adding anWithNative
interface, which annotates the existence of an accessor to the platform specific code.Since in Javascript the native implementation is often an interface rather than a class, simple typealiasing is impossible for providing accessors. Therefore
WithNative
must still provide is platform values via extended properties. On JS, the external interfaces can be wrapped in aJsAccessor
interface, so that callingWithNative.js
points to the interface rather than the class.This approach is currently only implemented for Firestore. Other modules might want the same implementation out of consistency however.