java - Android Studio 无法识别“task.isSuccesful”(“无法解析符号‘任务’”)
问题描述
我真的不确定问题可能是什么,我按照Whatsapp 克隆的教程进行操作,并且我已经按照每个步骤进行操作,但 Android Studio 仍然无法识别,我真的不知道出了什么问题。我只是迈出了编程的第一步。
public class LoginActivity extends AppCompatActivity {
private EditText mPhoneNumber, mCode;
private Button mSend;
private PhoneAuthProvider.OnVerificationStateChangedCallbacks mCallbacks;
String mVerificationId;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FirebaseApp.initializeApp(this);
userIsLoggedIn();
mPhoneNumber = findViewById(R.id. phoneNumber);
mCode = findViewById(R.id.code);
mSend = findViewById(R.id.send);
mSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (mVerificationId != null)
verifyPhoneNumberWithCode();
else
startPhoneNumberVerification();
}
});
mCallbacks = new PhoneAuthProvider.OnVerificationStateChangedCallbacks() {
@Override
public void onVerificationCompleted(PhoneAuthCredential phoneAuthCredential) {
signInWithPhoneAuthCredential(phoneAuthCredential);
}
@Override
public void onVerificationFailed(FirebaseException e) {}
@Override
public void onCodeSent(String verificationId, PhoneAuthProvider.ForceResendingToken forceResendingToken) {
super.onCodeSent(verificationId, forceResendingToken);
mVerificationId = verificationId;
mSend.setText("Verify Code");
}
};
}
private void verifyPhoneNumberWithCode(){
PhoneAuthCredential credential = PhoneAuthProvider.getCredential(mVerificationId, mCode.getText().toString());
signInWithPhoneAuthCredential(credential);
}
private void signInWithPhoneAuthCredential(PhoneAuthCredential phoneAuthCredential) {
FirebaseAuth.getInstance().signInWithCredential(phoneAuthCredential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
}if(task.isSuccesful()){ // **here is the PROBLEM**
final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null){
final DatabaseReference mUserDB = FirebaseDatabase.getInstance().getReference().child("user").child(user.getUid());
mUserDB.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (!dataSnapshot.exists()){
Map<String, Object> userMap = new HashMap<>();
userMap.put("phone", user.getPhoneNumber());
userMap.put("name", user.getPhoneNumber());
mUserDB.updateChildren(userMap);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {}
});
}
}
//userIsLoggedIn();
});
}
private void userIsLoggedIn() {
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null){
startActivity(new Intent(getApplicationContext(), MainPageActivity.class));
finish();
return;
}
}
private void startPhoneNumberVerification() {
PhoneAuthProvider.getInstance().verifyPhoneNumber(
mPhoneNumber.getText().toString(),
60,
TimeUnit.SECONDS,
this,
mCallbacks);
}
}
解决方案
花括号太多了:
}if(task.isSuccesful()){
应该
if(task.isSuccesful()) {
推荐阅读
- android - 如何使用双簧管加载多个声音
- mysql - 使用游标遍历列和行,将每个列和行分配给变量
- javascript - 如何重新排列对象的 sortOrder
- r - R推荐网格搜索优化
- javascript - 为什么在 Chrome 中在 mousedown 处理程序中附加输入时,它会获得焦点?
- android-management-api - 无法登录gmail
- angular - 如何在Angular8中处理像`show.bs.tooltip`这样的引导事件?
- firebase - 如何在 Xamarin Forms UWP 中实现 Firebase
- ruby-on-rails - 如何在 .gitlab-ci.yml 文件的脚本部分添加 chrome 和 chrome 无头浏览器
- java - 当我在列表中拥有这些图像的 Uris 时,如何使用库使用意图查看来自外部存储的多个图像