11package com .google .firebase .quickstart ;
22
3+ import com .google .auth .oauth2 .GoogleCredentials ;
34import com .google .firebase .FirebaseApp ;
45import com .google .firebase .FirebaseOptions ;
56import com .google .firebase .auth .FirebaseAuth ;
6- import com .google .firebase .auth .FirebaseCredentials ;
7+ import com .google .firebase .auth .FirebaseToken ;
78import com .google .firebase .auth .UserRecord ;
89import com .google .firebase .auth .UserRecord .CreateRequest ;
910import com .google .firebase .auth .UserRecord .UpdateRequest ;
10- import com .google .firebase .tasks .Task ;
1111import java .io .FileInputStream ;
1212import 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.
1922 */
2023public 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 ("user@example.com" )
@@ -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 ("user@example.com" )
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 ("user@example.com" )
@@ -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 ("user@example.com" ))
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 ("user@example.com" );
156+ getUserByPhoneNumber ("+11234567890" );
157+ updateUser ("some-uid" );
158+ deleteUser ("some-uid" );
159+ createCustomToken ();
160+ createCustomTokenWithClaims ();
161+ System .out .println ("Done!" );
172162 }
173163
174164}
0 commit comments