Android Firebase - Twitter登录按钮甚至没有声音
问题描述:
我刚刚从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
答
新秀的举动。
需要高于setContentView();
补充说,在顶部,现在它工作正常。
删除此:
TwitterConfig config = new TwitterConfig.Builder(this)
.logger(new DefaultLogger(Log.DEBUG))
.twitterAuthConfig(new TwitterAuthConfig("CONSUMER_KEY", "CONSUMER_SECRET"))
.debug(true)
.build();
Twitter.initialize(config);
-T