このクラスのメソッドを他のクラスから呼び出していますが、いつもfalse
を取得します。匿名クラスのonSuccess()メソッドから外部変数を更新する方法Firebase.ValueResultHandler
するonSuccess()
方法私は、このメソッドを呼び出すたび、それは常に、nullを返すには、誰もが、私は正しい結果を得ることができる方法を私に伝えることができ
public class UserAccount {
Firebase firebase;
private UserAccount() {
firebase = new Firebase(firebase_url);
}
public static UserAccount getUserAccountInstance(){
return userAccountInstance;
}
boolean status = false;
public boolean createUserAccount(String username, String password)throws FirebaseException{
if(firebase == null)
firebase = new Firebase(firebase_url);
firebase.createUser(username+"@firebase.com", password, new Firebase.ValueResultHandler<Map<String, Object>>() {
@Override
public void onSuccess(Map<String, Object> result) {
System.out.println("Successfully created user account with uid:" + result.get("uid"));
UserAccount.this.status=true;
}
@Override
public void onError(FirebaseError firebaseError) {
System.out.println("Something went wrong!! \n Account cannot be created.. useraccount");
throw new FirebaseException(firebaseError.getMessage());
}
});
System.out.println("user"+status);// this produces false
return status;
}
私も静的キーワードを試してみましたが、それはうまくいきませんでした。
私はメソッドが 'onSuccess()'メソッドを実行する前に値を返すことを知っていましたが、onSuccessメソッドが実行されるのを待つ方法がわかりませんでした。 createuseraccount()、新しい値を返すように、解決策を教えてくれてありがとう –