Skip to content

Fis sdk #1057

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 126 commits into from
Jan 6, 2020
Merged

Fis sdk #1057

merged 126 commits into from
Jan 6, 2020

Conversation

fredquintana
Copy link
Contributor

Converted the FirebaseInstallations instrumentation tests into unit tests.

diwu-arete and others added 30 commits June 12, 2019 17:49
…oid SDK (#514)

* Add Firebase Segmentation SDK and some skeleton code in Firebase Android SDK

* Add Firebase Segmentation SDK and some skeleton code in Firebase Android SDK

* Address comments #1

* Address comments #1

* Address comments #2
…sts for it. (#524)

* Add type arguments in StorageTaskManager (#517)

* Output artifact list during local publishing. (#515)

This effort replaces #494.

* Implement Firebase segmentation SDK device local cache

* fix functions (#523)

* fix functions

* update minsdk version

* remove idea

* Set test type to release only in CI. (#522)

* Set test type to release only in CI.

This fixes Android Studio issue, where it is impossible to run
integration tests in debug mode.

Additionally move build type configuration to FirebaseLibraryPlugin to
avoid projects.all configuration in gradle.

* Add comment back.

* [Firebase Segmentation] Add custom installation id cache layer and tests for it.

* Add test for updating cache

* Switch to use SQLiteOpenHelper

* Minor fix to error message to match the admin sdk. (#525)

* Minor fix to error message to match the admin sdk.

In particular, it *is* allowed to have slashes, etc in field paths.

* Added clean task to smoke tests. (#527)

This change allows the smoke tests to clean all build variants created
by the infrastructure.

* Update deps to post-androidx gms versions. (#526)

* Update deps to post-androidx gms versions.

Additionally configure sources.jar for SDKs.

* Update functions-ktx deps

* Fix versions.

* unbump fiam version in fiamui-app

* Switch to use SharedPreferences from SQLite.

* Change the cache class to be singleton

* Copy firebase-firestore-ktx dependencies on firestore into its own subfolder (#528)

* Wrap shared pref commit in a async task.

* Address comments

* Bump firestore version for release (#530)

Additionally fix pom filter to exclude multidex from deps.

* Google format fix
* Implement Firebase segmentation SDK device local cache

* [Firebase Segmentation] Add custom installation id cache layer and tests for it.

* Add test for updating cache

* Switch to use SQLiteOpenHelper

* Switch to use SharedPreferences from SQLite.

* Change the cache class to be singleton

* Wrap shared pref commit in a async task.

* Address comments

* Google format fix

* Replace some deprecated code.
* Implement Firebase segmentation SDK device local cache

* [Firebase Segmentation] Add custom installation id cache layer and tests for it.

* Add test for updating cache

* Switch to use SQLiteOpenHelper

* Switch to use SharedPreferences from SQLite.

* Change the cache class to be singleton

* Wrap shared pref commit in a async task.

* Address comments

* Google format fix

* Replace some deprecated code.

* Package refactor

* nit

* nit
cache and update to Firebase Segmentation backend. CL also contains unit
tests.
(The http client is not implemented yet.)
ankitaj224 and others added 18 commits October 10, 2019 13:51
* Simplifying FirebaseInstallations class by adding listeners.

* Addressing ciaran's comments to return same token if multiple getAuthToken()
calls are triggered simultaneously.

* Cleaning doRegistration method.

* Fixing FISClient to correctly parse expiration timestamp. (#848)

* Updating getAuthToken to return creation timestamp (#884)

* Propagating the exceptions to the clients. (#856)
* Fixing FISClient to correctly parse expiration timestamp. (#848)

* Updating getAuthToken to return creation timestamp (#884)

* Propagating the exceptions to the clients. (#856)

* Extract FID from FIS createInstallation response (#888)

* Addressing Rayo's comment: Rename PersistedFidEntry to (#899)

* Implementing retry once for FIS Client. (#895)

* Simplifying FirebaseInstallations class by adding listeners. (#847)

* Fixing FISClient to correctly parse expiration timestamp. (#848)

* Updating getAuthToken to return creation timestamp (#884)

* Propagating the exceptions to the clients. (#856)
 1. Mark PersistedInstallationEntry status UNREGISTERED incase of 500 errors
2. Store detailed 4xx server exceptions in the local storage. In the
succeeding getId calls,return these exceptions to the clients
* Add FisError to the persisted installation entry. (#931)
1 line change on comment
* getAuthToken error handling for 401 & 404 response code:
- Clear the local storage & throw an exception to call
getId() resulting in recreation of fid
* add tests

* update api

* installations
* Switch from using SharedPreferences to a flat file

* Fixes for multi-process access

 - switch from shared prefs to a flat file
 - protect generate Fid for cross-process and cross-thread accesses
 - make doRegistration only read the prefs once at the beginning and
   clean up the flow
 - pass the forceRefresh flag into doRegistration rather than
   storing it in a global

* revert the name of the FID prefs write call

* fix formatting issues

* Fix the cross process locking

The check if a new FID was needed was not in the critical region.

* some small changes from the review

* fix the java format and update the api file
* changed the instrumentation tests into unit tests

unit tests are easier and faster to run and debug
the unit tests are also included in the code coverage tests

* remove the FirebaseInstallations instrumentation tests

These have been moved into unit tests and so are no longer needed.
Also removed constants that are no longer referenced.

* fix a format error
@codecov
Copy link

codecov bot commented Dec 14, 2019

Codecov Report

Merging #1057 into master will increase coverage by 0.88%.
The diff coverage is 78.94%.

Impacted file tree graph

@@             Coverage Diff              @@
##             master    #1057      +/-   ##
============================================
+ Coverage     57.57%   58.46%   +0.88%     
- Complexity     6243     6327      +84     
============================================
  Files           639      640       +1     
  Lines         31367    31373       +6     
  Branches       4323     4323              
============================================
+ Hits          18060    18341     +281     
+ Misses        11865    11585     -280     
- Partials       1442     1447       +5
Impacted Files Coverage Δ Complexity Δ
.../firebase/installations/FirebaseInstallations.java 93.24% <100%> (+81.21%) 37 <2> (+33) ⬆️
...oogle/firebase/installations/CrossProcessLock.java 75% <75%> (ø) 3 <3> (?)
...va/com/google/firebase/database/core/SyncTree.java 62.25% <0%> (+0.25%) 40% <0%> (ø) ⬇️
.../java/com/google/firebase/storage/StorageTask.java 80.66% <0%> (+0.9%) 92% <0%> (+1%) ⬆️
...n/java/com/google/firebase/storage/UploadTask.java 73.26% <0%> (+1.09%) 48% <0%> (+1%) ⬆️
.../com/google/firebase/storage/StorageException.java 56.36% <0%> (+3.63%) 24% <0%> (+1%) ⬆️
...google/firebase/database/snapshot/BooleanNode.java 100% <0%> (+7.69%) 14% <0%> (+1%) ⬆️
...m/google/firebase/installations/GetIdListener.java 46.15% <0%> (+46.15%) 3% <0%> (+3%) ⬆️
.../java/com/google/firebase/installations/Utils.java 100% <0%> (+63.63%) 6% <0%> (+4%) ⬆️
... and 7 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update f1bd039...7f360d3. Read the comment docs.

An intermediate RandomAccessFile created while acquiring the lock
was not closed.

Also pulled the cross process locking logic out into a separate class.
@fredquintana fredquintana merged commit 953be74 into master Jan 6, 2020
@google-oss-bot
Copy link
Contributor

@fredquintana: The following test failed, say /retest to rerun them all:

Test name Commit Details Rerun command
check-changed 7f360d3 link /test check-changed

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@firebase firebase locked and limited conversation to collaborators Feb 6, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants