Backporting reviewer suggested comments from
# 17.1.1
- [fixed] Fixed an issue where the first `get()` call made after being offline
could incorrectly return cached data without attempting to reach the backend.
-- [changed] Changed `get()` to only make 1 attempt to reach the backend before
- returning cached data, potentially reducing delays while offline. Previously
- it would make 2 attempts, to work around a backend bug.
-- [fixed] Fixed an issue that caused us to drop empty objects from calls to
- `set(..., SetOptions.merge())`.
-- [fixed] Ensure printf style templates are compile time constants. Previously,
- some were influenced by error messages. When those error messages contained
- '%p' (amongst other possibilities), String.format() would throw an exception.
-- [changed] Some SDK errors that represent common mistakes (such as permission
- denied or a missing index) will automatically be logged as a warning in
- addition to being surfaced via the API.
+- [changed] Changed `get()` to only make one attempt to reach the backend before
+ returning cached data, potentially reducing delays while offline.
+- [fixed] Fixed an issue that caused Firebase to drop empty objects from calls
+ to `set(..., SetOptions.merge())`.
+- [fixed] Updated printf-style templates to ensure that they're compile time
+ constants. Previously, some were influenced by error messages. When those
+ error messages contained `%p` or other, related tokens, `String.format()`
+ would throw an exception.
+- [changed] Some SDK errors that represent common mistakes, like permission
+ errors or missing indexes, are automatically be logged as warnings in addition
+ to being surfaced via the API.
# 17.1.0
- [feature] Added `FieldValue.arrayUnion()` and `FieldValue.arrayRemove()` to
