I am new to FIrebase and cannot figure this out. I am trying to create a new user and am receiving an error.
Here is my code
public class SignupActivity extends FirebaseLoginBaseActivity {
private static final String TAG = "SignupActivity";
@Bind(R.id.input_email)
EditText _emailText;
@Bind(R.id.input_password)
EditText _passwordText;
@Bind(R.id.btn_signup)
Button _signupButton;
@Bind(R.id.link_login)
TextView _loginLink;
private static final String fbaseFanPollsURL = "https://fan-polls.firebaseio.com";
Firebase mFirebaseBaseRef;
Firebase mFirebaseUserRef;
String mNewUserEmail;
String mNewUserPassowrd;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Firebase.setAndroidContext(this);
setContentView(R.layout.activity_signup);
ButterKnife.bind(this);
mFirebaseBaseRef = new Firebase(fbaseFanPollsURL);
mFirebaseUserRef = mFirebaseBaseRef.child("users");
_signupButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
signup();
}
});
_loginLink.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showFirebaseLoginPrompt();
}
});
}
@Override
protected void onStart() {
super.onStart();
setEnabledAuthProvider(SocialProvider.facebook);
setEnabledAuthProvider(SocialProvider.twitter);
setEnabledAuthProvider(SocialProvider.google);
setEnabledAuthProvider(SocialProvider.password);
}
public void signup() {
Log.d(TAG, "Signup");
if (!validate()) {
onSignupFailed();
return;
}
_signupButton.setEnabled(false);
final ProgressDialog progressDialog = new ProgressDialog(SignupActivity.this,
R.style.AppTheme);
progressDialog.setIndeterminate(true);
progressDialog.setMessage("Creating Account...");
progressDialog.show();
mNewUserEmail = _emailText.getText().toString();
mNewUserPassowrd = _passwordText.getText().toString();
// TODO: Implement your own signup logic here.
new android.os.Handler().postDelayed(
new Runnable() {
public void run() {
// On complete call either onSignupSuccess or onSignupFailed
// depending on success
onSignupSuccess();
// onSignupFailed();
progressDialog.dismiss();
}
}, 3000);
}
public void onSignupSuccess() {
_signupButton.setEnabled(true);
setResult(RESULT_OK, null);
mFirebaseUserRef.createUser(mNewUserEmail, mNewUserPassowrd, new Firebase.ResultHandler() {
@Override
public void onSuccess() {
Toast.makeText(getApplicationContext(), "testing success",Toast.LENGTH_LONG).show();
}
@Override
public void onError(FirebaseError firebaseError) {
Toast.makeText(getApplicationContext(), "Failure",Toast.LENGTH_LONG).show();
}
});
}
public void onSignupFailed() {
Toast.makeText(getBaseContext(), "Login failed", Toast.LENGTH_LONG).show();
_signupButton.setEnabled(true);
}
public boolean validate() {
boolean valid = true;
String email = _emailText.getText().toString();
String password = _passwordText.getText().toString();
if (email.isEmpty() || !android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()) {
_emailText.setError("enter a valid email address");
valid = false;
} else {
_emailText.setError(null);
}
if (password.isEmpty() || password.length() < 4 || password.length() > 15) {
_passwordText.setError("between 4 and 15 alphanumeric characters");
valid = false;
} else {
_passwordText.setError(null);
}
return valid;
}
@Override
protected void onFirebaseLoggedIn(AuthData authData) {
}
@Override
protected void onFirebaseLoggedOut() {
}
@Override
protected void onFirebaseLoginProviderError(FirebaseLoginError firebaseLoginError) {
}
@Override
protected void onFirebaseLoginUserError(FirebaseLoginError firebaseLoginError) {
}
@Override
protected Firebase getFirebaseRef() {
return mFirebaseBaseRef;
}
}
And here is the error I am receiving:
01-05 18:51:06.617 1559-1637/? W/ApplicationsProvider: Could not fetch usage stats
java.lang.SecurityException: Neither user 10019 nor current process has android.permission.PACKAGE_USAGE_STATS.
at android.os.Parcel.readException(Parcel.java:1472)
at android.os.Parcel.readException(Parcel.java:1426)
at com.android.internal.app.IUsageStats$Stub$Proxy.getAllPkgUsageStats(IUsageStats.java:317)
at android.app.ActivityManager.getAllPackageUsageStats(ActivityManager.java:2543)
at com.android.providers.applications.ApplicationsProvider.fetchUsageStats(ApplicationsProvider.java:681)
at com.android.providers.applications.ApplicationsProvider.updateApplicationsList(ApplicationsProvider.java:519)
at com.android.providers.applications.ApplicationsProvider.access$300(ApplicationsProvider.java:70)
at com.android.providers.applications.ApplicationsProvider$UpdateHandler.handleMessage(ApplicationsProvider.java:212)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.os.HandlerThread.run(HandlerThread.java:61)
01-05 18:51:06.667 1559-1637/? W/ApplicationsProvider: Could not fetch usage stats
java.lang.SecurityException: Neither user 10019 nor current process has android.permission.PACKAGE_USAGE_STATS.
at android.os.Parcel.readException(Parcel.java:1472)
at android.os.Parcel.readException(Parcel.java:1426)
at com.android.internal.app.IUsageStats$Stub$Proxy.getAllPkgUsageStats(IUsageStats.java:317)
at android.app.ActivityManager.getAllPackageUsageStats(ActivityManager.java:2543)
at com.android.providers.applications.ApplicationsProvider.fetchUsageStats(ApplicationsProvider.java:681)
at com.android.providers.applications.ApplicationsProvider.updateApplicationsList(ApplicationsProvider.java:519)
at com.android.providers.applications.ApplicationsProvider.access$300(ApplicationsProvider.java:70)
at com.android.providers.applications.ApplicationsProvider$UpdateHandler.handleMessage(ApplicationsProvider.java:209)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.os.HandlerThread.run(HandlerThread.java:61)
01-05 18:51:09.927 27761-27781/? I/ProviderInstaller: Installed default security provider GmsCore_OpenSSL
01-05 18:51:22.577 1559-1637/? W/ApplicationsProvider: Could not fetch usage stats
java.lang.SecurityException: Neither user 10019 nor current process has android.permission.PACKAGE_USAGE_STATS.
at android.os.Parcel.readException(Parcel.java:1472)
at android.os.Parcel.readException(Parcel.java:1426)
at com.android.internal.app.IUsageStats$Stub$Proxy.getAllPkgUsageStats(IUsageStats.java:317)
at android.app.ActivityManager.getAllPackageUsageStats(ActivityManager.java:2543)
at com.android.providers.applications.ApplicationsProvider.fetchUsageStats(ApplicationsProvider.java:681)
at com.android.providers.applications.ApplicationsProvider.updateApplicationsList(ApplicationsProvider.java:519)
at com.android.providers.applications.ApplicationsProvider.access$300(ApplicationsProvider.java:70)
at com.android.providers.applications.ApplicationsProvider$UpdateHandler.handleMessage(ApplicationsProvider.java:212)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:146)
at android.os.HandlerThread.run(HandlerThread.java:61)