1
1
package com .google .firebase .quickstart ;
2
2
3
+ import com .google .auth .oauth2 .GoogleCredentials ;
3
4
import com .google .firebase .FirebaseApp ;
4
5
import com .google .firebase .FirebaseOptions ;
5
6
import com .google .firebase .auth .FirebaseAuth ;
6
- import com .google .firebase .auth .FirebaseCredentials ;
7
+ import com .google .firebase .auth .FirebaseToken ;
7
8
import com .google .firebase .auth .UserRecord ;
8
9
import com .google .firebase .auth .UserRecord .CreateRequest ;
9
10
import com .google .firebase .auth .UserRecord .UpdateRequest ;
10
- import com .google .firebase .tasks .Task ;
11
11
import java .io .FileInputStream ;
12
12
import java .io .IOException ;
13
+ import java .util .HashMap ;
14
+ import java .util .Map ;
15
+ import java .util .concurrent .ExecutionException ;
13
16
14
17
/**
15
18
* Auth snippets for documentation.
19
22
*/
20
23
public class AuthSnippets {
21
24
22
- public static Task < UserRecord > getUserById (String uid ) {
25
+ public static void getUserById (String uid ) throws InterruptedException , ExecutionException {
23
26
// [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 ());
32
30
// [END get_user_by_id]
33
-
34
- return task ;
35
31
}
36
32
37
- public static Task < UserRecord > getUserByEmail (String email ) {
33
+ public static void getUserByEmail (String email ) throws InterruptedException , ExecutionException {
38
34
// [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 ());
47
38
// [END get_user_by_email]
48
-
49
- return task ;
50
39
}
51
40
52
- public static Task <UserRecord > getUserByPhoneNumber (String phoneNumber ) {
41
+ public static void getUserByPhoneNumber (
42
+ String phoneNumber ) throws InterruptedException , ExecutionException {
53
43
// [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 ());
62
47
// [END get_user_by_phone]
63
-
64
- return task ;
65
48
}
66
49
67
- public static Task < UserRecord > createUser () {
50
+ public static void createUser () throws InterruptedException , ExecutionException {
68
51
// [START create_user]
69
52
CreateRequest request = new CreateRequest ()
70
53
@@ -75,40 +58,24 @@ public static Task<UserRecord> createUser() {
75
58
.setPhotoUrl ("http://www.example.com/12345678/photo.png" )
76
59
.setDisabled (false );
77
60
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 ());
86
63
// [END create_user]
87
-
88
- return task ;
89
64
}
90
65
91
- public static Task < UserRecord > createUserWithUid () {
66
+ public static void createUserWithUid () throws InterruptedException , ExecutionException {
92
67
// [START create_user_with_uid]
93
68
CreateRequest request = new CreateRequest ()
94
69
.setUid ("some-uid" )
95
70
96
71
.setPhoneNumber ("+11234567890" );
97
72
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 ());
106
75
// [END create_user_with_uid]
107
-
108
- return task ;
109
76
}
110
77
111
- public static Task < UserRecord > updateUser (String uid ) {
78
+ public static void updateUser (String uid ) throws InterruptedException , ExecutionException {
112
79
// [START update_user]
113
80
UpdateRequest request = new UpdateRequest (uid )
114
81
@@ -119,38 +86,59 @@ public static Task<UserRecord> updateUser(String uid) {
119
86
.setPhotoUrl ("http://www.example.com/12345678/photo.png" )
120
87
.setDisabled (true );
121
88
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 ());
130
91
// [END update_user]
131
-
132
- return task ;
133
92
}
134
93
135
- public static Task < Void > deleteUser (String uid ) {
94
+ public static void deleteUser (String uid ) throws InterruptedException , ExecutionException {
136
95
// [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." );
140
98
// [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
+ }
141
123
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 );
143
131
}
144
132
145
- public static void main (String [] args ) {
133
+ public static void main (String [] args ) throws InterruptedException , ExecutionException {
146
134
System .out .println ("Hello, AuthSnippets!" );
147
135
148
136
// Initialize Firebase
149
137
try {
150
138
// [START initialize]
151
139
FileInputStream serviceAccount = new FileInputStream ("service-account.json" );
152
140
FirebaseOptions options = new FirebaseOptions .Builder ()
153
- .setCredential ( FirebaseCredentials . fromCertificate (serviceAccount ))
141
+ .setCredentials ( GoogleCredentials . fromStream (serviceAccount ))
154
142
.build ();
155
143
FirebaseApp .initializeApp (options );
156
144
// [END initialize]
@@ -162,13 +150,15 @@ public static void main(String[] args) {
162
150
}
163
151
164
152
// 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!" );
172
162
}
173
163
174
164
}
0 commit comments