1
我剛剛從Facebook身份驗證切換到Twitter身份驗證。 Facebook工作正常,但現在我的登錄屏幕上有這個Twitter按鈕,點擊它時甚至不會發出聲音。有人有任何想法嗎?我是否應該在我的清單中加入一些內容以使其正常工作?我也更新了API和密鑰。Android Firebase - Twitter登錄按鈕甚至沒有聲音
public class LoginActivity extends Activity{
private TwitterLoginButton loginButton;
private FirebaseAuth firebaseAuth;
private ProgressDialog progressDialog;
private static final String TAG = "LoginActivity.class";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
TwitterConfig config = new TwitterConfig.Builder(this)
.logger(new DefaultLogger(Log.DEBUG))
.twitterAuthConfig(new TwitterAuthConfig("CONSUMER_KEY", "CONSUMER_SECRET"))
.debug(true)
.build();
Twitter.initialize(config);
loginButton = (TwitterLoginButton) findViewById(R.id.login_button);
loginButton.setCallback(new Callback<TwitterSession>() {
@Override
public void success(Result<TwitterSession> result) {
progressDialog = new ProgressDialog(LoginActivity.this);
progressDialog.setMessage("Logging you in");
progressDialog.show();
handleTwitterSession(result.data);
}
@Override
public void failure(TwitterException exception) {
// Do something on failure
System.out.println("failed for some reason");
}
});
firebaseAuth = FirebaseAuth.getInstance();
if(firebaseAuth.getCurrentUser() != null){
finish();
startActivity(new Intent(getApplicationContext(), MainActivity.class));
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
loginButton.onActivityResult(requestCode, resultCode, data);
}
private void handleTwitterSession(TwitterSession session) {
Log.d(TAG, "handleTwitterSession:" + session);
AuthCredential credential = TwitterAuthProvider.getCredential(
session.getAuthToken().token,
session.getAuthToken().secret);
firebaseAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
Log.d(TAG, "signInWithCredential:success");
FirebaseUser user = firebaseAuth.getCurrentUser();
checkUserAndStart();
} else {
// If sign in fails, display a message to the user.
Log.w(TAG, "signInWithCredential:failure", task.getException());
Toast.makeText(LoginActivity.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
}
// ...
}
});
}
private void checkUserAndStart(){
DatabaseReference db = FirebaseDatabase.getInstance().getReference().child("users").child(firebaseAuth.getCurrentUser().getUid()).child("bio");
db.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()){
progressDialog.dismiss();
finish();
startActivity(new Intent(getApplicationContext(), MainActivity.class));
}else{
finish();
progressDialog.dismiss();
startActivity(new Intent(getApplicationContext(), CreateProfileActivity.class));
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
和波紋管是我簡單的登錄按鈕佈局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_login"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/baseColor"
android:gravity="center"
tools:context="com.morticia.android.pop.activities.LoginActivity">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:padding ="16dp"
android:layout_gravity="center"
android:weightSum="2">
<ImageView
android:layout_width="wrap_content"
android:layout_height="70dp"
android:src="@drawable/maincircmdpi"
android:id="@+id/imageView4" />
<com.twitter.sdk.android.core.identity.TwitterLoginButton
android:id="@+id/login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:clickable="true"/>
</LinearLayout>
</ScrollView>
</RelativeLayout>
感謝 -T