Skip to content

Commit 6d472ef

Browse files
committed
Cleans up use of FirebaseOAuthToken and fixes Facebook login
1 parent 1afad6b commit 6d472ef

File tree

3 files changed

+43
-57
lines changed

3 files changed

+43
-57
lines changed

library/src/main/java/com/firebase/ui/FirebaseLoginBaseActivity.java

Lines changed: 36 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
import android.support.v7.app.AppCompatActivity;
66
import android.util.Log;
77

8-
import com.facebook.FacebookSdk;
9-
import com.facebook.appevents.AppEventsLogger;
108
import com.firebase.client.AuthData;
119
import com.firebase.client.Firebase;
1210
import com.firebase.client.FirebaseError;
@@ -25,8 +23,6 @@
2523
import java.util.HashMap;
2624
import java.util.Map;
2725

28-
import twitter4j.Twitter;
29-
3026
public abstract class FirebaseLoginBaseActivity extends AppCompatActivity {
3127

3228
private final String LOG_TAG = "FirebaseLoginBaseAct";
@@ -96,7 +92,7 @@ protected void onCreate(Bundle savedInstanceState) {
9692
mFacebookAuthHelper = new FacebookAuthHelper(this, new TokenAuthHandler() {
9793
@Override
9894
public void onTokenReceived(FirebaseOAuthToken token) {
99-
authenticateRefWithProvider(token.provider, token.token);
95+
authenticateRefWithFirebaseOAuthToken(token);
10096
}
10197

10298
@Override
@@ -113,7 +109,7 @@ public void onError(Exception ex) {
113109
mGoogleAuthHelper = new GoogleAuthHelper(this, new TokenAuthHandler() {
114110
@Override
115111
public void onTokenReceived(FirebaseOAuthToken token) {
116-
authenticateRefWithProvider(token.provider, token.token);
112+
authenticateRefWithFirebaseOAuthToken(token);
117113
}
118114

119115
@Override
@@ -130,7 +126,7 @@ public void onError(Exception ex) {
130126
mTwitterAuthHelper = new TwitterAuthHelper(this, new TokenAuthHandler() {
131127
@Override
132128
public void onTokenReceived(FirebaseOAuthToken token) {
133-
authenticateRefWithProvider(token.provider, token);
129+
authenticateRefWithFirebaseOAuthToken(token);
134130
}
135131

136132
@Override
@@ -146,7 +142,8 @@ public void onError(Exception ex) {
146142
}
147143

148144
public void onActivityResult(int requestCode, int resultCode, Intent data) {
149-
Log.d("BASE", "ACTIVITY");
145+
Log.d("BASE", "ACTIVITY" + data.toString());
146+
mFacebookAuthHelper.mCallbackManager.onActivityResult(requestCode, resultCode, data);
150147
mTwitterAuthHelper.onActivityResult(requestCode, resultCode, data);
151148
}
152149

@@ -168,57 +165,53 @@ public void onAuthStateChanged(AuthData authData) {
168165
});
169166
}
170167

171-
private void authenticateRefWithProvider(String provider, String token) {
172-
getFirebaseRef().authWithOAuthToken(provider, token, new Firebase.AuthResultHandler() {
173-
@Override
174-
public void onAuthenticated(AuthData authData) {
175-
// Do nothing. Auth updates are handled in the AuthStateListener
176-
}
177-
178-
@Override
179-
public void onAuthenticationError(FirebaseError firebaseError) {
180-
onFirebaseLoginError(firebaseError);
181-
}
182-
});
183-
}
184-
185-
private void authenticateRefWithProvider(String provider, FirebaseOAuthToken token) {
186-
Map<String, String> options = new HashMap<>();
187-
options.put("oauth_token", token.token);
188-
options.put("oauth_token_secret", token.secret);
189-
options.put("user_id", token.uid);
168+
private void authenticateRefWithFirebaseOAuthToken(FirebaseOAuthToken token) {
169+
if (token.mode == FirebaseOAuthToken.SIMPLE) {
170+
// Simple mode is used for Facebook and Google auth
171+
getFirebaseRef().authWithOAuthToken(token.provider, token.token, new Firebase.AuthResultHandler() {
172+
@Override
173+
public void onAuthenticated(AuthData authData) {
174+
// Do nothing. Auth updates are handled in the AuthStateListener
175+
}
190176

191-
getFirebaseRef().authWithOAuthToken(provider, options, new Firebase.AuthResultHandler() {
192-
@Override
193-
public void onAuthenticated(AuthData authData) {
194-
// Do nothing. Auth updates are handled in the AuthStateListener
195-
}
177+
@Override
178+
public void onAuthenticationError(FirebaseError firebaseError) {
179+
onFirebaseLoginError(firebaseError);
180+
}
181+
});
182+
} else if (token.mode == FirebaseOAuthToken.COMPLEX) {
183+
// Complex mode is used for Twitter auth
184+
Map<String, String> options = new HashMap<>();
185+
options.put("oauth_token", token.token);
186+
options.put("oauth_token_secret", token.secret);
187+
options.put("user_id", token.uid);
188+
189+
getFirebaseRef().authWithOAuthToken(token.provider, options, new Firebase.AuthResultHandler() {
190+
@Override
191+
public void onAuthenticated(AuthData authData) {
192+
// Do nothing. Auth updates are handled in the AuthStateListener
193+
}
196194

197-
@Override
198-
public void onAuthenticationError(FirebaseError firebaseError) {
199-
onFirebaseLoginError(firebaseError);
200-
}
201-
});
195+
@Override
196+
public void onAuthenticationError(FirebaseError firebaseError) {
197+
onFirebaseLoginError(firebaseError);
198+
}
199+
});
200+
}
202201
}
203202

204203
private String getFirebaseUrlFromConfig() {
205204
String firebaseUrl;
206205
try {
207-
208206
InputStream inputStream = getAssets().open("firebase-config.json");
209-
210207
int size = inputStream.available();
211-
212208
byte[] buffer = new byte[size];
213209

214210
inputStream.read(buffer);
215-
216211
inputStream.close();
217212

218213
String json = new String(buffer, "UTF-8");
219-
220214
JSONObject obj = new JSONObject(json);
221-
222215
firebaseUrl = obj.getString("firebaseUrl");
223216

224217
} catch (IOException ex) {

library/src/main/java/com/firebase/ui/com/firebasei/ui/authimpl/FacebookAuthHelper.java

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,12 @@ public class FacebookAuthHelper {
3535
public final String PROVIDER_NAME = "facebook";
3636

3737
private LoginManager mLoginManager;
38-
private CallbackManager mCallbackManager;
38+
public CallbackManager mCallbackManager;
3939
private Context mContext;
4040
private TokenAuthHandler mHandler;
4141
private Activity mActivity;
4242

4343
public FacebookAuthHelper(Context context, TokenAuthHandler handler) {
44-
Log.d(LOG_TAG, "SETTING UP");
4544
mActivity = (Activity) context;
4645
FacebookSdk.sdkInitialize(context.getApplicationContext());
4746

@@ -54,7 +53,6 @@ public FacebookAuthHelper(Context context, TokenAuthHandler handler) {
5453
new FacebookCallback<LoginResult>() {
5554
@Override
5655
public void onSuccess(LoginResult loginResult) {
57-
Log.d(LOG_TAG, "LOGGED IN");
5856
AccessToken token = loginResult.getAccessToken();
5957

6058
FirebaseOAuthToken foToken = new FirebaseOAuthToken(
@@ -65,26 +63,15 @@ public void onSuccess(LoginResult loginResult) {
6563

6664
@Override
6765
public void onCancel() {
68-
Log.d(LOG_TAG, "CANCEL");
6966
mHandler.onCancelled();
7067
}
7168

7269
@Override
7370
public void onError(FacebookException ex) {
74-
Log.d(LOG_TAG, "ERROR");
7571
mHandler.onError(ex);
7672
}
7773
}
7874
);
79-
80-
AccessTokenTracker mFacebookAccessTokenTracker = new AccessTokenTracker() {
81-
@Override
82-
protected void onCurrentAccessTokenChanged(AccessToken oldAccessToken, AccessToken currentAccessToken) {
83-
Log.d(LOG_TAG, "Facebook.AccessTokenTracker.OnCurrentAccessTokenChanged");
84-
}
85-
};
86-
mFacebookAccessTokenTracker.startTracking();
87-
Log.d(LOG_TAG, "SETUP DONE");
8875
}
8976

9077
public void login() {

library/src/main/java/com/firebase/ui/com/firebasei/ui/authimpl/FirebaseOAuthToken.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,22 @@ public class FirebaseOAuthToken {
88
public String secret;
99
public String uid;
1010
public String provider;
11+
public int mode;
12+
13+
public static final int SIMPLE = 1;
14+
public static final int COMPLEX = 2;
1115

1216
public FirebaseOAuthToken(String provider, String token) {
1317
this.provider = provider;
1418
this.token = token;
19+
this.mode = SIMPLE;
1520
}
1621

1722
public FirebaseOAuthToken(String provider, String token, String secret, String uid) {
1823
this.provider = provider;
1924
this.token = token;
2025
this.secret = secret;
2126
this.uid = uid;
27+
this.mode = COMPLEX;
2228
}
2329
}

0 commit comments

Comments
 (0)