Skip to content

Commit d8db91a

Browse files
authored
Merge pull request #14 from firebase/hkj-api-futures
Documentation Updates for 5.4.0 Release
2 parents 8ed508b + 6a64da5 commit d8db91a

File tree

4 files changed

+78
-88
lines changed

4 files changed

+78
-88
lines changed

auth/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,5 +16,5 @@ repositories {
1616

1717
dependencies {
1818
// Firebase Java SDK
19-
compile 'com.google.firebase:firebase-admin:5.1.0'
19+
compile 'com.google.firebase:firebase-admin:5.3.1'
2020
}
Lines changed: 72 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
package com.google.firebase.quickstart;
22

3+
import com.google.auth.oauth2.GoogleCredentials;
34
import com.google.firebase.FirebaseApp;
45
import com.google.firebase.FirebaseOptions;
56
import com.google.firebase.auth.FirebaseAuth;
6-
import com.google.firebase.auth.FirebaseCredentials;
7+
import com.google.firebase.auth.FirebaseToken;
78
import com.google.firebase.auth.UserRecord;
89
import com.google.firebase.auth.UserRecord.CreateRequest;
910
import com.google.firebase.auth.UserRecord.UpdateRequest;
10-
import com.google.firebase.tasks.Task;
1111
import java.io.FileInputStream;
1212
import java.io.IOException;
13+
import java.util.HashMap;
14+
import java.util.Map;
15+
import java.util.concurrent.ExecutionException;
1316

1417
/**
1518
* Auth snippets for documentation.
@@ -19,52 +22,32 @@
1922
*/
2023
public class AuthSnippets {
2124

22-
public static Task<UserRecord> getUserById(String uid) {
25+
public static void getUserById(String uid) throws InterruptedException, ExecutionException {
2326
// [START get_user_by_id]
24-
Task<UserRecord> task = FirebaseAuth.getInstance().getUser(uid)
25-
.addOnSuccessListener(userRecord -> {
26-
// See the UserRecord reference doc for the contents of userRecord.
27-
System.out.println("Successfully fetched user data: " + userRecord.getUid());
28-
})
29-
.addOnFailureListener(e -> {
30-
System.err.println("Error fetching user data: " + e.getMessage());
31-
});
27+
UserRecord userRecord = FirebaseAuth.getInstance().getUserAsync(uid).get();
28+
// See the UserRecord reference doc for the contents of userRecord.
29+
System.out.println("Successfully fetched user data: " + userRecord.getUid());
3230
// [END get_user_by_id]
33-
34-
return task;
3531
}
3632

37-
public static Task<UserRecord> getUserByEmail(String email) {
33+
public static void getUserByEmail(String email) throws InterruptedException, ExecutionException {
3834
// [START get_user_by_email]
39-
Task<UserRecord> task = FirebaseAuth.getInstance().getUserByEmail(email)
40-
.addOnSuccessListener(userRecord -> {
41-
// See the UserRecord reference doc for the contents of userRecord.
42-
System.out.println("Successfully fetched user data: " + userRecord.getEmail());
43-
})
44-
.addOnFailureListener(e -> {
45-
System.err.println("Error fetching user data: " + e.getMessage());
46-
});
35+
UserRecord userRecord = FirebaseAuth.getInstance().getUserByEmailAsync(email).get();
36+
// See the UserRecord reference doc for the contents of userRecord.
37+
System.out.println("Successfully fetched user data: " + userRecord.getEmail());
4738
// [END get_user_by_email]
48-
49-
return task;
5039
}
5140

52-
public static Task<UserRecord> getUserByPhoneNumber(String phoneNumber) {
41+
public static void getUserByPhoneNumber(
42+
String phoneNumber) throws InterruptedException, ExecutionException {
5343
// [START get_user_by_phone]
54-
Task<UserRecord> task = FirebaseAuth.getInstance().getUserByPhoneNumber(phoneNumber)
55-
.addOnSuccessListener(userRecord -> {
56-
// See the UserRecord reference doc for the contents of userRecord.
57-
System.out.println("Successfully fetched user data: " + userRecord.getPhoneNumber());
58-
})
59-
.addOnFailureListener(e -> {
60-
System.err.println("Error fetching user data: " + e.getMessage());
61-
});
44+
UserRecord userRecord = FirebaseAuth.getInstance().getUserByPhoneNumberAsync(phoneNumber).get();
45+
// See the UserRecord reference doc for the contents of userRecord.
46+
System.out.println("Successfully fetched user data: " + userRecord.getPhoneNumber());
6247
// [END get_user_by_phone]
63-
64-
return task;
6548
}
6649

67-
public static Task<UserRecord> createUser() {
50+
public static void createUser() throws InterruptedException, ExecutionException {
6851
// [START create_user]
6952
CreateRequest request = new CreateRequest()
7053
.setEmail("[email protected]")
@@ -75,40 +58,24 @@ public static Task<UserRecord> createUser() {
7558
.setPhotoUrl("http://www.example.com/12345678/photo.png")
7659
.setDisabled(false);
7760

78-
Task<UserRecord> task = FirebaseAuth.getInstance().createUser(request)
79-
.addOnSuccessListener(userRecord -> {
80-
// See the UserRecord reference doc for the contents of userRecord.
81-
System.out.println("Successfully created new user: " + userRecord.getUid());
82-
})
83-
.addOnFailureListener(e -> {
84-
System.err.println("Error creating new user: " + e.getMessage());
85-
});
61+
UserRecord userRecord = FirebaseAuth.getInstance().createUserAsync(request).get();
62+
System.out.println("Successfully created new user: " + userRecord.getUid());
8663
// [END create_user]
87-
88-
return task;
8964
}
9065

91-
public static Task<UserRecord> createUserWithUid() {
66+
public static void createUserWithUid() throws InterruptedException, ExecutionException {
9267
// [START create_user_with_uid]
9368
CreateRequest request = new CreateRequest()
9469
.setUid("some-uid")
9570
.setEmail("[email protected]")
9671
.setPhoneNumber("+11234567890");
9772

98-
Task<UserRecord> task = FirebaseAuth.getInstance().createUser(request)
99-
.addOnSuccessListener(userRecord -> {
100-
// See the UserRecord reference doc for the contents of userRecord.
101-
System.out.println("Successfully created new user: " + userRecord.getUid());
102-
})
103-
.addOnFailureListener(e -> {
104-
System.err.println("Error creating new user: " + e.getMessage());
105-
});
73+
UserRecord userRecord = FirebaseAuth.getInstance().createUserAsync(request).get();
74+
System.out.println("Successfully created new user: " + userRecord.getUid());
10675
// [END create_user_with_uid]
107-
108-
return task;
10976
}
11077

111-
public static Task<UserRecord> updateUser(String uid) {
78+
public static void updateUser(String uid) throws InterruptedException, ExecutionException {
11279
// [START update_user]
11380
UpdateRequest request = new UpdateRequest(uid)
11481
.setEmail("[email protected]")
@@ -119,38 +86,59 @@ public static Task<UserRecord> updateUser(String uid) {
11986
.setPhotoUrl("http://www.example.com/12345678/photo.png")
12087
.setDisabled(true);
12188

122-
Task<UserRecord> task = FirebaseAuth.getInstance().updateUser(request)
123-
.addOnSuccessListener(userRecord -> {
124-
// See the UserRecord reference doc for the contents of userRecord.
125-
System.out.println("Successfully updated user: " + userRecord.getUid());
126-
})
127-
.addOnFailureListener(e -> {
128-
System.err.println("Error updating user: " + e.getMessage());
129-
});
89+
UserRecord userRecord = FirebaseAuth.getInstance().updateUserAsync(request).get();
90+
System.out.println("Successfully updated user: " + userRecord.getUid());
13091
// [END update_user]
131-
132-
return task;
13392
}
13493

135-
public static Task<Void> deleteUser(String uid) {
94+
public static void deleteUser(String uid) throws InterruptedException, ExecutionException {
13695
// [START delete_user]
137-
Task<Void> task = FirebaseAuth.getInstance().deleteUser(uid)
138-
.addOnSuccessListener(aVoid -> System.out.println("Successfully deleted user."))
139-
.addOnFailureListener(e -> System.err.println("Error updating user: " + e.getMessage()));
96+
FirebaseAuth.getInstance().deleteUserAsync(uid).get();
97+
System.out.println("Successfully deleted user.");
14098
// [END delete_user]
99+
}
100+
101+
public static void createCustomToken() throws InterruptedException, ExecutionException {
102+
// [START custom_token]
103+
String uid = "some-uid";
104+
105+
String customToken = FirebaseAuth.getInstance().createCustomTokenAsync(uid).get();
106+
// Send token back to client
107+
// [END custom_token]
108+
System.out.println("Created custom token: " + customToken);
109+
}
110+
111+
public static void createCustomTokenWithClaims() throws InterruptedException, ExecutionException {
112+
// [START custom_token_with_claims]
113+
String uid = "some-uid";
114+
Map<String, Object> additionalClaims = new HashMap<String, Object>();
115+
additionalClaims.put("premiumAccount", true);
116+
117+
String customToken = FirebaseAuth.getInstance()
118+
.createCustomTokenAsync(uid, additionalClaims).get();
119+
// Send token back to client
120+
// [END custom_token_with_claims]
121+
System.out.println("Created custom token: " + customToken);
122+
}
141123

142-
return task;
124+
public static void verifyIdToken(String idToken) throws InterruptedException, ExecutionException {
125+
// [START verify_id_token]
126+
// idToken comes from the client app (shown above)
127+
FirebaseToken decodedToken = FirebaseAuth.getInstance().verifyIdTokenAsync(idToken).get();
128+
String uid = decodedToken.getUid();
129+
// [END verify_id_token]
130+
System.out.println("Decoded ID token from user: " + uid);
143131
}
144132

145-
public static void main(String[] args) {
133+
public static void main(String[] args) throws InterruptedException, ExecutionException {
146134
System.out.println("Hello, AuthSnippets!");
147135

148136
// Initialize Firebase
149137
try {
150138
// [START initialize]
151139
FileInputStream serviceAccount = new FileInputStream("service-account.json");
152140
FirebaseOptions options = new FirebaseOptions.Builder()
153-
.setCredential(FirebaseCredentials.fromCertificate(serviceAccount))
141+
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
154142
.build();
155143
FirebaseApp.initializeApp(options);
156144
// [END initialize]
@@ -162,13 +150,15 @@ public static void main(String[] args) {
162150
}
163151

164152
// Smoke test
165-
createUserWithUid()
166-
.continueWithTask(task -> getUserById("some-uid"))
167-
.continueWithTask(task -> getUserByEmail("[email protected]"))
168-
.continueWithTask(task -> getUserByPhoneNumber("+11234567890"))
169-
.continueWithTask(task -> updateUser("some-uid"))
170-
.continueWithTask(task -> deleteUser("some-uid"))
171-
.addOnCompleteListener(task -> System.out.println("Done! Success: " + task.isSuccessful()));
153+
createUserWithUid();
154+
getUserById("some-uid");
155+
getUserByEmail("[email protected]");
156+
getUserByPhoneNumber("+11234567890");
157+
updateUser("some-uid");
158+
deleteUser("some-uid");
159+
createCustomToken();
160+
createCustomTokenWithClaims();
161+
System.out.println("Done!");
172162
}
173163

174164
}

database/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ repositories {
1515

1616
dependencies {
1717
// Firebase Java SDK
18-
compile 'com.google.firebase:firebase-admin:5.1.0'
18+
compile 'com.google.firebase:firebase-admin:5.3.1'
1919

2020
// Sundial Job Scheduler
2121
compile 'org.knowm:sundial:2.1.1'

database/src/main/java/com/google/firebase/quickstart/Database.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,17 @@
1515
*/
1616
package com.google.firebase.quickstart;
1717

18+
import com.google.auth.oauth2.GoogleCredentials;
1819
import com.google.firebase.FirebaseApp;
1920
import com.google.firebase.FirebaseOptions;
20-
import com.google.firebase.auth.FirebaseCredentials;
2121
import com.google.firebase.database.*;
2222
import com.google.firebase.quickstart.email.MyEmailer;
2323
import com.google.firebase.quickstart.model.Post;
2424
import com.google.firebase.quickstart.model.User;
25+
import java.io.IOException;
2526
import org.knowm.sundial.SundialJobScheduler;
2627

2728
import java.io.FileInputStream;
28-
import java.io.FileNotFoundException;
2929

3030
/**
3131
* Firebase Database quickstart sample for the Java Admin SDK.
@@ -184,12 +184,12 @@ public static void main(String[] args) {
184184
// [START initialize]
185185
FileInputStream serviceAccount = new FileInputStream("service-account.json");
186186
FirebaseOptions options = new FirebaseOptions.Builder()
187-
.setCredential(FirebaseCredentials.fromCertificate(serviceAccount))
187+
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
188188
.setDatabaseUrl(DATABASE_URL)
189189
.build();
190190
FirebaseApp.initializeApp(options);
191191
// [END initialize]
192-
} catch (FileNotFoundException e) {
192+
} catch (IOException e) {
193193
System.out.println("ERROR: invalid service account credentials. See README.");
194194
System.out.println(e.getMessage());
195195

0 commit comments

Comments
 (0)