Skip to content

Commit 1980af8

Browse files
authored
Merge pull request #65 from FrangSierra/development
Update dependencies and add basic implementation for Firebase Cloud F…
2 parents caae6e9 + 6425716 commit 1980af8

File tree

2 files changed

+71
-6
lines changed

2 files changed

+71
-6
lines changed

app/build.gradle

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ buildscript {
22
ext {
33
rx_version = "2.1.10"
44
rx_android_version = "2.0.2"
5-
firebase_auth_version='16.0.2'
6-
firebase_database_version='16.0.1'
7-
firebase_storage_version='16.0.1'
8-
firebase_firestore_version='17.0.2'
5+
firebase_auth_version='16.0.3'
6+
firebase_database_version='16.0.2'
7+
firebase_storage_version='16.0.2'
8+
firebase_firestore_version='17.1.0'
9+
firebase_functions_version='16.1.0'
910
support_version = "27.0.2"
1011
}
1112
}
@@ -19,12 +20,12 @@ android {
1920
exclude 'META-INF/NOTICE'
2021
}
2122

22-
compileSdkVersion 27
23+
compileSdkVersion 28
2324
buildToolsVersion "27.0.3"
2425

2526
defaultConfig {
2627
minSdkVersion 14
27-
targetSdkVersion 27
28+
targetSdkVersion 28
2829
versionCode 5
2930
versionName "1.3"
3031
consumerProguardFiles 'consumer-proguard-rules.pro'
@@ -41,6 +42,7 @@ dependencies {
4142
compileOnly "com.google.firebase:firebase-database:$firebase_database_version"
4243
compileOnly "com.google.firebase:firebase-storage:$firebase_storage_version"
4344
compileOnly "com.google.firebase:firebase-firestore:$firebase_firestore_version"
45+
compileOnly "com.google.firebase:firebase-functions:$firebase_functions_version"
4446
compileOnly "com.android.support:recyclerview-v7:$support_version"
4547
implementation "io.reactivex.rxjava2:rxjava:$rx_version"
4648
implementation "io.reactivex.rxjava2:rxandroid:$rx_android_version"
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package durdinapps.rxfirebase2;
2+
3+
import android.support.annotation.NonNull;
4+
import android.support.annotation.Nullable;
5+
6+
import com.google.android.gms.tasks.OnFailureListener;
7+
import com.google.android.gms.tasks.OnSuccessListener;
8+
import com.google.firebase.functions.FirebaseFunctions;
9+
import com.google.firebase.functions.HttpsCallableResult;
10+
11+
import io.reactivex.Single;
12+
import io.reactivex.SingleEmitter;
13+
import io.reactivex.SingleOnSubscribe;
14+
15+
public class RxFirebaseFunctions {
16+
17+
/**
18+
* Calls a {@link HttpsCallableResult} which represents a reference to a Google Cloud Functions HTTPS callable function.
19+
*
20+
* @param functions Instance of {@link FirebaseFunctions}
21+
* @param name Name of the Google Cloud function
22+
* @param data Params for the request.
23+
* @return a {@link Single} which will emit the result of the given function.
24+
*/
25+
@NonNull
26+
public static Single<HttpsCallableResult> getHttpsCallable(@NonNull final FirebaseFunctions functions,
27+
@NonNull final String name,
28+
@Nullable final Object data) {
29+
return Single.create(new SingleOnSubscribe<HttpsCallableResult>() {
30+
@Override
31+
public void subscribe(final SingleEmitter<HttpsCallableResult> emitter) {
32+
functions.getHttpsCallable(name)
33+
.call(data)
34+
.addOnSuccessListener(new OnSuccessListener<HttpsCallableResult>() {
35+
@Override
36+
public void onSuccess(HttpsCallableResult httpsCallableResult) {
37+
emitter.onSuccess(httpsCallableResult);
38+
}
39+
})
40+
.addOnFailureListener(new OnFailureListener() {
41+
@Override
42+
public void onFailure(@NonNull Exception e) {
43+
emitter.onError(e);
44+
}
45+
});
46+
}
47+
});
48+
}
49+
50+
51+
/**
52+
* Calls a {@link HttpsCallableResult} which represents a reference to a Google Cloud Functions HTTPS callable function.
53+
*
54+
* @param functions Instance of {@link FirebaseFunctions}
55+
* @param name Name of the Google Cloud function
56+
* @return a {@link Single} which will emit the result of the given function.
57+
*/
58+
@NonNull
59+
public static Single<HttpsCallableResult> getHttpsCallable(@NonNull final FirebaseFunctions functions,
60+
@NonNull final String name) {
61+
return getHttpsCallable(functions, name, null);
62+
}
63+
}

0 commit comments

Comments
 (0)