无法在 Android 中创建 Firebase 用户
Cannot Create Firebase User in Android
我正在尝试使用 Firebase 创建用户,但遇到了一些问题。我有一个简单的登录屏幕,正在处理注册新用户的部分(此时甚至不关心当前用户)。
在检查了我所有的用户名和密码要求后,我收到了对自定义 onSignupSuccess() 方法的调用。在此方法中,我开始使用 mFirebaseBaseRef.createUser 方法创建 Firebase 用户。此方法的回调将转到 onError,我得到的错误是 Java.lang.SecurityException。下面是我的代码:
public class SignupActivity extends FirebaseLoginBaseActivity {
private static final String TAG = "SignupActivity";
private static final String fbaseFanPollsURL = "https://fan-polls.firebaseio.com";
Firebase mFirebaseBaseRef;
Firebase mFirebaseUserRef;
String mNewUserEmail;
String mNewUserPassowrd;
@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;
@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();
}
});
}
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();
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);
mFirebaseBaseRef.createUser(mNewUserEmail, mNewUserPassowrd, new Firebase.ValueResultHandler<Map<String, Object>>() {
@Override
public void onSuccess(Map<String, Object> stringObjectMap) {
Toast.makeText(SignupActivity.this, "It worked", Toast.LENGTH_SHORT).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 onStart() {
super.onStart();
setEnabledAuthProvider(SocialProvider.facebook);
setEnabledAuthProvider(SocialProvider.twitter);
setEnabledAuthProvider(SocialProvider.google);
setEnabledAuthProvider(SocialProvider.password);
}
@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;
}
}
错误:
01-06 09:21:00.529 21752-21752/? E/dalvikvm: >>>>> Normal User
01-06 09:21:00.529 21752-21752/? E/dalvikvm: >>>>> com.sec.android.app.FileShareServer [ userId:0 | appId:10068 ]
01-06 09:21:00.539 21752-21752/? D/TimaKeyStoreProvider: in addTimaSignatureService
01-06 09:21:00.549 21752-21752/? D/TimaKeyStoreProvider: Cannot add TimaSignature Service, License check Failed
01-06 09:21:00.549 21752-21752/? D/ActivityThread: Added TimaKesytore provider
01-06 09:21:00.569 21752-21752/? D/FileShare-Server: ServerBroadcastReceiver.onReceive - action android.intent.action.PACKAGE_CHANGED // package:com.google.android.gms
01-06 09:21:00.579 3595-3595/? D/BezelQuickConnect: BezelBroadcastReceiver - onReceive : android.intent.action.PACKAGE_CHANGED
01-06 09:21:00.579 3595-3595/? D/BezelQuickConnect: BezelBroadcastReceiver - packageName : com.google.android.gms
01-06 09:21:00.579 788-4080/? I/ActivityManager: Killing 21201:com.samsung.android.intelligenceservice/u0a4 (adj 15): empty #32
01-06 09:21:00.609 15809-21764/? D/PackageBroadcastService: Received broadcast action=android.intent.action.PACKAGE_CHANGED and uri=com.google.android.gms
01-06 09:21:00.609 15809-21764/? I/PackageBroadcastService: Null package name or gms related package. Ignoreing.
01-06 09:21:00.629 20321-21768/? I/UpdateIcingCorporaServi: Updating corpora: APPS=com.google.android.gms, CONTACTS=MAYBE
01-06 09:21:00.639 15809-16487/? I/Icing: updateResources: need to parse f{com.google.android.gms}
01-06 09:21:00.719 20321-21768/? I/UpdateIcingCorporaServi: UpdateCorporaTask done [took 85 ms] updated apps [took 85 ms]
01-06 09:21:00.799 240-1283/? I/SurfaceFlinger: id=1557 Removed TignupActiv (10/12)
01-06 09:21:00.809 240-1773/? I/SurfaceFlinger: id=1557 Removed TignupActiv (-2/12)
01-06 09:21:00.809 788-4088/? I/SpenGestureManager: setFocusWindow21015
01-06 09:21:00.809 788-929/? D/PointerIcon: setMouseIconStyle1 pointerType: 1001iconType:101 flag:0
01-06 09:21:00.809 788-929/? D/PointerIcon: setMouseCustomIcon IconType is same.101
01-06 09:21:00.809 788-929/? D/PointerIcon: setHoveringSpenIconStyle1 pointerType: 10001iconType:1 flag:0
01-06 09:21:00.809 788-929/? D/PointerIcon: setHoveringSpenCustomIcon IconType is same.1
01-06 09:21:00.809 788-7639/? W/InputMethodManagerService: Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@44723488 attribute=null, token = android.os.BinderProxy@43e91b78
01-06 09:21:00.819 21153-21153/? E/ViewRootImpl: sendUserActionEvent() mView == null
01-06 09:21:00.819 21153-21773/? I/System.out: Thread-8030(ApacheHTTPLog):Reading from variable values from setDefaultValuesToVariables
01-06 09:21:00.829 21153-21773/? I/System.out: Thread-
同样有趣的是,当我删除对 firebase 的调用时,我收到以下错误:
already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@43d606d0 attribute=null, token = android.os.BinderProxy@440d9208
01-06 09:38:11.229 23736-23736/? W/dalvikvm: VFY: unable to find class referenced in signature (Landroid/net/Network;)
01-06 09:38:11.229 23736-23736/? W/dalvikvm: VFY: unable to find class referenced in signature (Landroid/net/Network;)
01-06 09:38:11.229 23736-23736/? I/dalvikvm: Could not find method android.net.Network.openConnection, referenced from method com.google.android.gms.http.GoogleURLConnectionFactory.openConnection
01-06 09:38:11.229 23736-23736/? W/dalvikvm: VFY: unable to resolve virtual method 1596: Landroid/net/Network;.openConnection (Ljava/net/URL;)Ljava/net/URLConnection;
01-06 09:38:11.229 23736-23736/? D/dalvikvm: VFY: replacing opcode 0x6e at 0x00a0
01-06 09:38:11.229 23736-23736/? I/GoogleURLConnFactory: Using platform SSLCertificateSocketFactory
01-06 09:38:11.229 23736-23736/? I/GoogleHttpClient: Using GMS GoogleHttpClient
01-06 09:38:11.229 23736-23736/? W/ActivityThread: ClassLoader.loadClass: The class loader returned by Thread.getContextClassLoader() may fail for processes that host multiple applications. You should explicitly specify a context class loader. For example: Thread.setContextClassLoader(getClass().getClassLoader());
01-06 09:38:11.319 23736-23736/? I/GHttpClientFactory: Using our fixed implementation of GMSCore's GoogleHttpClient
01-06 09:38:11.319 23736-23736/? I/GoogleURLConnFactory: Using platform SSLCertificateSocketFactory
01-06 09:38:11.329 222-416/? E/cutils: Failed to mkdirat(/storage/extSdCard/Android): Read-only file system
01-06 09:38:11.329 23736-23736/? W/ContextImpl: Failed to ensure directory: /storage/extSdCard/Android/data/com.google.android.music/files
01-06 09:38:11.329 222-416/? W/Vold: Returning OperationFailed - no handler for errno 30
01-06 09:38:11.389 222-416/? E/cutils: Failed to mkdirat(/storage/extSdCard/Android): Read-only file system
01-06 09:38:11.389 23736-23736/? W/ContextImpl: Failed to ensure directory: /storage/extSdCard/Android/data/com.google.android.music/files
01-06 09:38:11.389 222-416/? E/cutils: Failed to mkdirat(/storage/extSdCard/Android): Read-only file system
01-06 09:38:11.389 23736-23736/? W/ContextImpl: Failed to ensure directory: /storage/extSdCard/Android/data/com.google.android.music/files
01-06 09:38:11.389 222-416/? W/Vold: Returning OperationFailed - no handler for errno 30
01-06 09:38:11.389 222-416/? W/Vold: Returning OperationFailed - no handler for errno 30
01-06 09:38:11.399 23736-23736/? D/MusicLifecycle: com.google.android.music.MusicApplication generated event: Application created
01-06 09:38:11.439 23736-23736/? D/dalvikvm: DexOpt: couldn't find static field Landroid/os/Build;.SUPPORTED_ABIS
01-06 09:38:11.439 23736-23736/? W/dalvikvm: VFY: unable to resolve static field 120 (SUPPORTED_ABIS) in Landroid/os/Build;
01-06 09:38:11.439 23736-23736/? D/dalvikvm: VFY: replacing opcode 0x62 at 0x000a
01-06 09:38:11.439 23736-23736/? D/dalvikvm: DexOpt: couldn't find field Landroid/content/pm/ApplicationInfo;.splitSourceDirs
01-06 09:38:11.439 23736-23736/? W/dalvikvm: VFY: unable to resolve instance field 36
01-06 09:38:11.439 23736-23736/? D/dalvikvm: VFY: replacing opcode 0x54 at 0x005f
01-06 09:38:11.449 23736-23736/? D/dalvikvm: DexOpt: couldn't find static field Landroid/os/Build;.SUPPORTED_ABIS
01-06 09:38:11.449 23736-23736/? W/dalvikvm: VFY: unable to resolve static field 120 (SUPPORTED_ABIS) in Landroid/os/Build;
01-06 09:38:11.449 23736-23736/? D/dalvikvm: VFY: replacing opcode 0x62 at 0x0047
01-06 09:38:11.449 23736-23736/? D/dalvikvm: DexOpt: couldn't find field Landroid/content/pm/ApplicationInfo;.splitSourceDirs
01-06 09:38:11.449 23736-23736/? I/dalvikvm: DexOpt: unable to optimize instance field ref 0x0024 at 0x63 in Lcom/google/android/gms/common/util/ay;.b
01-06 09:38:11.449 23736-23736/? D/dalvikvm: Trying to load lib /data/app-lib/com.google.android.gms-22/libgmscore.so 0x420f7a10
01-06 09:38:11.449 23736-23736/? D/dalvikvm: Added shared lib /data/app-lib/com.google.android.gms-22/libgmscore.so 0x420f7a10
01-06 09:38:11.449 23736-23736/? D/dalvikvm: No JNI_OnLoad found in /data/app-lib/com.google.android.gms-22/libgmscore.so 0x420f7a10, skipping init
01-06 09:38:11.459 23736-23736/? D/dalvikvm: Trying to load lib /data/app-lib/com.google.android.gms-22/libconscrypt_gmscore_jni.so 0x420f7a10
01-06 09:38:11.459 23736-23736/? D/dalvikvm: Added shared lib /data/app-lib/com.google.android.gms-22/libconscrypt_gmscore_jni.so 0x420f7a10
01-06 09:38:11.519 23736-23736/? D/dalvikvm: Trying to load lib /data/app-lib/com.google.android.gms-22/libgmscore.so 0x420f7a10
01-06 09:38:11.519 23736-23736/? D/dalvikvm: Shared lib '/data/app-lib/com.google.android.gms-22/libgmscore.so' already loaded in same CL 0x420f7a10
01-06 09:38:11.519 23736-23736/? D/dalvikvm: Trying to load lib /data/app-lib/com.google.android.gms-22/libconscrypt_gmscore_jni.so 0x420f7a10
01-06 09:38:11.519 23736-23736/? D/dalvikvm: Shared lib '/data/app-lib/com.google.android.gms-22/libconscrypt_gmscore_jni.so' already loaded in same CL 0x420f7a10
01-06 09:38:11.599 23736-23736/? I/ProviderInstaller: Installed default security provider GmsCore_OpenSSL
01-06 09:38:11.599 23736-23736/? D/AndroidMusic: GMSCore installation verified
01-06 09:38:11.629 23736-23736/? I/BaseStore: ConfigStore database version: 1
01-06 09:38:11.699 788-1268/? D/WifiDisplayAdapter: getWifiDisplayStatusLocked: result=WifiDisplayStatus{featureState=2, scanState=0, activeDisplayState=0, activeDisplay=null, displays=[], sessionInfo=WifiDisplaySessionInfo: Client/Owner: Client GroupId: Passphrase: SessionId: 0 IP Address: , connectedState=-1, networkQoS=0}
01-06 09:38:11.709 788-1157/? D/WifiDisplayAdapter: getWifiDisplayStatusLocked: result=WifiDisplayStatus{featureState=2, scanState=0, activeDisplayState=0, activeDisplay=null, displays=[], sessionInfo=WifiDisplaySessionInfo: Client/Owner: Client GroupId: Passphrase: SessionId: 0 IP Address: , connectedState=-1, networkQoS=0}
01-06 09:38:11.719 788-1390/? I/AudioService: getStreamVolume 3 index 150
01-06 09:38:11.719 23736-23736/? I/MediaRouter: Found default route: MediaRouter.RouteInfo{ uniqueId=android/.support.v7.media.SystemMediaRouteProvider:DEFAULT_ROUTE, name=Phone, description=null, iconUri=null, enabled=true, connecting=false, connectionState=0, canDisconnect=false, playbackType=0, playbackStream=3, deviceType=0, volumeHandling=1, volume=15, volumeMax=15, presentationDisplayId=-1, extras=null, settingsIntent=null, providerPackageName=android }
01-06 09:38:11.759 1209-1209/? D/WearableService: callingUid 10012, callindPid: 1209
01-06 09:38:11.759 23736-23736/? D/MusicLifecycle: com.google.android.music.net.NetworkMonitor generated event: Service created
01-06 09:38:11.759 23736-23736/? I/NetworkMonitor: type=WIFI subType= reason=null isConnected=true
01-06 09:38:11.799 23736-23736/? D/MusicLifecycle: com.google.android.music.preferences.MusicPreferenceService$MusicPreferenceServiceBinder generated event: Service created
01-06 09:38:11.799 23736-23736/? D/MusicLifecycle: com.google.android.music.download.cache.StorageMigrationService generated event: Service created
01-06 09:38:11.809 23736-23736/? D/MusicLifecycle: com.google.android.music.download.artwork.ArtDownloadService generated event: Service created
01-06 09:38:11.819 788-1272/? D/WifiDisplayAdapter: getWifiDisplayStatusLocked: result=WifiDisplayStatus{featureState=2, scanState=0, activeDisplayState=0, activeDisplay=null, displays=[], sessionInfo=WifiDisplaySessionInfo: Client/Owner: Client GroupId: Passphrase: SessionId: 0 IP Address: , connectedState=-1, networkQoS=0}
01-06 09:38:11.829 23736-23736/? D/MusicLifecycle: com.google.android.music.wear.WearDataTransferConnectionService generated event: Service created
01-06 09:38:11.839 23736-23736/? D/MusicLifecycle: com.google.android.music.net.NetworkMonitor generated event: Broadcast received with context com.google.android.music.net.NetworkMonitor@421f8c00 and intent Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x4000010 (has extras) }
01-06 09:38:11.839 23736-23736/? I/NetworkMonitor: type=WIFI subType= reason=null isConnected=true
01-06 09:38:11.859 23736-23736/? D/MusicLifecycle: com.google.android.music.download.ArtDownloadQueueService generated event: Service created
01-06 09:38:11.879 23736-23736/? D/MusicLifecycle: com.google.android.music.download.cache.ArtCacheService generated event: Service created
01-06 09:38:11.889 23736-23736/? D/MusicLifecycle: com.google.android.music.download.cache.StorageMigrationService generated event: Service destroyed
01-06 09:38:11.899 23736-23760/? W/dalvikvm: threadid=17: thread exiting with uncaught exception (group=0x417e9da0)
01-06 09:38:11.899 23736-23736/? E/ConnectionService: Failed to connect to GoogleApiClient: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
01-06 09:38:11.909 23736-23760/? E/CustomThreadFactory: UNCAUGHT in thread DataSyncServiceHelper-0
java.lang.IllegalStateException: could not connect to GoogleApiClient: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
at com.google.android.wearable.datatransfer.internal.DefaultPeerProvider.blockingConnect(DefaultPeerProvider.java:73)
at com.google.android.wearable.datatransfer.internal.DefaultPeerProvider.getConnectedPeers(DefaultPeerProvider.java:30)
at com.google.android.wearable.datatransfer.internal.DataSyncServiceHelper.processIntent(DataSyncServiceHelper.java:375)
at com.google.android.wearable.datatransfer.internal.DataSyncServiceHelper.access[=13=]0(DataSyncServiceHelper.java:48)
at com.google.android.wearable.datatransfer.internal.DataSyncServiceHelper$IntentProcessor.run(DataSyncServiceHelper.java:716)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
01-06 09:38:11.919 23736-23769/? W/dalvikvm: threadid=23: thread exiting with uncaught exception (group=0x417e9da0)
01-06 09:38:11.919 23736-23769/? E/CustomThreadFactory: UNCAUGHT in thread DataSyncServiceHelper-1
java.lang.IllegalStateException: could not connect to GoogleApiClient: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
at com.google.android.wearable.datatransfer.internal.DefaultPeerProvider.blockingConnect(DefaultPeerProvider.java:73)
at com.google.android.wearable.datatransfer.internal.DefaultPeerProvider.getConnectedPeers(DefaultPeerProvider.java:30)
at com.google.android.wearable.datatransfer.internal.DataSyncServiceHelper.processIntent(DataSyncServiceHelper.java:375)
at com.google.android.wearable.datatransfer.internal.DataSyncServiceHelper.access[=13=]0(DataSyncServiceHelper.java:48)
at com.google.android.wearable.datatransfer.internal.DataSyncServiceHelper$IntentProcessor.run(DataSyncServiceHelper.java:716)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
01-06 09:38:11.969 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster - setNWBoosterIndicators(false)
01-06 09:38:11.969 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster: data=0 bt=false
01-06 09:38:11.979 1056-1056/? D/STATUSBAR-IconMerger: checkOverflow(144), More:true, Req:true Child:8
01-06 09:38:11.999 788-918/? D/SensorService: 0.7 0.5 9.7
01-06 09:38:12.819 234-234/? E/SMD: DCD ON
01-06 09:38:12.969 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster - setNWBoosterIndicators(false)
01-06 09:38:12.969 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster: data=0 bt=false
01-06 09:38:12.979 1056-1056/? D/STATUSBAR-IconMerger: checkOverflow(144), More:true, Req:true Child:8
01-06 09:38:13.109 788-2514/? D/SSRMv2:SIOP: SIOP:: AP = 300, Delta = 0
01-06 09:38:13.889 1344-1344/? I/NetworkEventSource: onSignalStrengthsChanged
01-06 09:38:13.889 1056-1056/? D/STATUSBAR-NetworkController: onSignalStrengthsChanged signalStrength=SignalStrength: 99 -1 -1 -1 -1 -1 -1 23 -98 -9 128 -1 2147483647 gsm|lte 0x5 level=5
01-06 09:38:13.899 1179-1179/? D/WfcPhoneStateListener: onSignalStrengthsChanged(): signal strength did not change
01-06 09:38:14.019 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster - setNWBoosterIndicators(false)
01-06 09:38:14.019 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster: data=0 bt=false
01-06 09:38:14.029 1056-1056/? D/STATUSBAR-IconMerger: checkOverflow(144), More:true, Req:true Child:8
01-06 09:38:15.059 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster - setNWBoosterIndicators(false)
01-06 09:38:15.059 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster: data=0 bt=false
01-06 09:38:15.079 1056-1056/? D/STATUSBAR-IconMerger: checkOverflow(144), More:true, Req:true Child:8
01-06 09:38:15.299 788-918/? D/SensorService: 0.7 0.5 9.7
01-06 09:38:15.809 234-234/? E/SMD: DCD ON
01-06 09:38:16.699 23736-23736/? D/MusicLifecycle: com.google.android.music.leanback.AutoCacheSchedulingService$EnablingReceiver generated event: Broadcast received with context android.app.ReceiverRestrictedContext@42253710 and intent Intent { act=com.google.android.music.START_DOWNLOAD_SCHEDULING flg=0x10 cmp=com.google.android.music/.leanback.AutoCacheSchedulingService$EnablingReceiver }
01-06 09:38:16.769 23736-23736/? D/MusicLifecycle: com.google.android.music.leanback.AutoCacheSchedulingService generated event: Service created
01-06 09:38:16.789 23736-23736/? D/MusicLifecycle: com.google.android.music.leanback.AutoCacheSchedulingService generated event: Service started with intent Intent { act=com.google.android.music.leanback.APP_IN_USE cmp=com.google.android.music/.leanback.AutoCacheSchedulingService (has extras) }
01-06 09:38:16.789 23736-23736/? D/MusicLifecycle: com.google.android.music.wear.WearBroadcastReceiver generated event: Broadcast received with context android.app.ReceiverRestrictedContext@42253710 and intent Intent { act=com.google.android.music.START_DOWNLOAD_SCHEDULING flg=0x10 cmp=com.google.android.music/.wear.WearBroadcastReceiver }
01-06 09:38:16.809 23736-23736/? D/MusicLifecycle: com.google.android.music.download.TrackDownloadQueueService generated event: Service created
01-06 09:38:16.829 23736-23736/? D/MusicLifecycle: com.google.android.music.download.cache.TrackCacheService generated event: Service created
01-06 09:38:16.839 23736-23736/? D/MusicLifecycle: com.google.android.music.wear.WearMetadataSyncService generated event: Service created
01-06 09:38:16.859 23736-23736/? D/MusicLifecycle: com.google.android.music.wear.WearMetadataSyncService generated event: Service started with intent Intent { cmp=com.google.android.music/.wear.WearMetadataSyncService }
01-06 09:38:16.889 23736-23736/? E/GmsUtils: Failed to connect to Google API client: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
01-06 09:38:16.889 23736-23780/? E/GmsUtils: Failed to connect to Google API client: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
01-06 09:38:16.889 23736-23736/? D/MusicLifecycle: com.google.android.music.wear.WearMetadataSyncService generated event: Service destroyed
01-06 09:38:16.899 23736-23776/? I/MusicLeanback: Conditions not met for autocaching. okToAttempt=false
01-06 09:38:16.899 23736-23776/? I/MusicLeanback: Stop autocaching.
01-06 09:38:16.899 23736-23736/? D/MusicLifecycle: com.google.android.music.download.cache.TrackCacheService generated event: Service destroyed
01-06 09:38:16.899 23736-23736/? D/MusicLifecycle: com.google.android.music.download.TrackDownloadQueueService generated event: Service destroyed
01-06 09:38:18.599 788-918/? D/SensorService: 0.7 0.5 9.7
01-06 09:38:18.819 234-234/? E/SMD: DCD ON
01-06 09:38:20.209 788-809/? D/BatteryService: level:81, scale:100, status:2, health:2, present:true, voltage: 4178, temperature: 226, technology: Li-ion, AC powered:false, USB powered:true, Wireless powered:false, icon:17303558, invalid charger:0, online:4, current avg:450, charge type:2, power sharing:false
01-06 09:38:20.209 788-788/? D/BatteryService: Sending ACTION_BATTERY_CHANGED.
01-06 09:38:20.219 788-788/? I/Tethering: BATTERY_CHANGED, level = 81lowBatteryThreshold = 15
01-06 09:38:20.229 1056-1056/? D/KeyguardUpdateMonitor: received broadcast android.intent.action.BATTERY_CHANGED
01-06 09:38:20.229 1056-1056/? D/KeyguardUpdateMonitor: handleBatteryUpdate
01-06 09:38:20.249 1056-1056/? D/STATUSBAR-PhoneStatusBar: mBrightnessEnablebySettings = true mBrightnessEnablebyBattery = true mBrightnessEnablebyDisableFlag = true mPmsBrightnessEnablebySettings = true
01-06 09:38:20.259 1056-1056/? D/STATUSBAR-IconMerger: checkOverflow(144), More:true, Req:true Child:8
01-06 09:38:20.269 1056-1056/? D/BatteryMeterView: ACTION_BATTERY_CHANGED : level:81 status:2 health:2
01-06 09:38:21.109 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster - setNWBoosterIndicators(false)
01-06 09:38:21.109 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster: data=0 bt=false
01-06 09:38:21.109 1056-1056/? D/STATUSBAR-IconMerger: checkOverflow(144), More:true, Req:true Child:8
01-06 09:38:21.819 234-234/? E/SMD: DCD ON
01-06 09:38:21.899 788-918/? D/SensorService: 0.7 0.5 9.7
01-06 09:38:22.159 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster - setNWBoosterIndicators(false)
01-06 09:38:22.159 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster: data=0 bt=false
01-06 09:38:22.179 1056-1056/? D/STATUSBAR-IconMerger: checkOverflow(144), More:true, Req:true Child:8
01-06 09:38:22.849 1056-1056/? D/STATUSBAR-NetworkController: onSignalStrengthsChanged signalStrength=SignalStrength: 99 -1 -1 -1 -1 -1 -1 23 -98 -10 150 -1 2147483647 gsm|lte 0x5 level=5
01-06 09:38:22.859 1344-1344/? I/NetworkEventSource: onSignalStrengthsChanged
01-06 09:38:22.859 1179-1179/? D/WfcPhoneStateListener: onSignalStrengthsChanged(): signal strength did not change
01-06 09:38:23.139 788-2514/? D/SSRMv2:SIOP: SIOP:: AP = 300, Delta = 0
01-06 09:38:24.189 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster - setNWBoosterIndicators(false)
01-06 09:38:24.189 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster: data=0 bt=false
必须确保在 Firebase 仪表板中启用电子邮件和密码登录设置。 .createUser() 方法然后填充此仪表板中的列表。
我正在尝试使用 Firebase 创建用户,但遇到了一些问题。我有一个简单的登录屏幕,正在处理注册新用户的部分(此时甚至不关心当前用户)。
在检查了我所有的用户名和密码要求后,我收到了对自定义 onSignupSuccess() 方法的调用。在此方法中,我开始使用 mFirebaseBaseRef.createUser 方法创建 Firebase 用户。此方法的回调将转到 onError,我得到的错误是 Java.lang.SecurityException。下面是我的代码:
public class SignupActivity extends FirebaseLoginBaseActivity {
private static final String TAG = "SignupActivity";
private static final String fbaseFanPollsURL = "https://fan-polls.firebaseio.com";
Firebase mFirebaseBaseRef;
Firebase mFirebaseUserRef;
String mNewUserEmail;
String mNewUserPassowrd;
@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;
@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();
}
});
}
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();
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);
mFirebaseBaseRef.createUser(mNewUserEmail, mNewUserPassowrd, new Firebase.ValueResultHandler<Map<String, Object>>() {
@Override
public void onSuccess(Map<String, Object> stringObjectMap) {
Toast.makeText(SignupActivity.this, "It worked", Toast.LENGTH_SHORT).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 onStart() {
super.onStart();
setEnabledAuthProvider(SocialProvider.facebook);
setEnabledAuthProvider(SocialProvider.twitter);
setEnabledAuthProvider(SocialProvider.google);
setEnabledAuthProvider(SocialProvider.password);
}
@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;
}
}
错误:
01-06 09:21:00.529 21752-21752/? E/dalvikvm: >>>>> Normal User
01-06 09:21:00.529 21752-21752/? E/dalvikvm: >>>>> com.sec.android.app.FileShareServer [ userId:0 | appId:10068 ]
01-06 09:21:00.539 21752-21752/? D/TimaKeyStoreProvider: in addTimaSignatureService
01-06 09:21:00.549 21752-21752/? D/TimaKeyStoreProvider: Cannot add TimaSignature Service, License check Failed
01-06 09:21:00.549 21752-21752/? D/ActivityThread: Added TimaKesytore provider
01-06 09:21:00.569 21752-21752/? D/FileShare-Server: ServerBroadcastReceiver.onReceive - action android.intent.action.PACKAGE_CHANGED // package:com.google.android.gms
01-06 09:21:00.579 3595-3595/? D/BezelQuickConnect: BezelBroadcastReceiver - onReceive : android.intent.action.PACKAGE_CHANGED
01-06 09:21:00.579 3595-3595/? D/BezelQuickConnect: BezelBroadcastReceiver - packageName : com.google.android.gms
01-06 09:21:00.579 788-4080/? I/ActivityManager: Killing 21201:com.samsung.android.intelligenceservice/u0a4 (adj 15): empty #32
01-06 09:21:00.609 15809-21764/? D/PackageBroadcastService: Received broadcast action=android.intent.action.PACKAGE_CHANGED and uri=com.google.android.gms
01-06 09:21:00.609 15809-21764/? I/PackageBroadcastService: Null package name or gms related package. Ignoreing.
01-06 09:21:00.629 20321-21768/? I/UpdateIcingCorporaServi: Updating corpora: APPS=com.google.android.gms, CONTACTS=MAYBE
01-06 09:21:00.639 15809-16487/? I/Icing: updateResources: need to parse f{com.google.android.gms}
01-06 09:21:00.719 20321-21768/? I/UpdateIcingCorporaServi: UpdateCorporaTask done [took 85 ms] updated apps [took 85 ms]
01-06 09:21:00.799 240-1283/? I/SurfaceFlinger: id=1557 Removed TignupActiv (10/12)
01-06 09:21:00.809 240-1773/? I/SurfaceFlinger: id=1557 Removed TignupActiv (-2/12)
01-06 09:21:00.809 788-4088/? I/SpenGestureManager: setFocusWindow21015
01-06 09:21:00.809 788-929/? D/PointerIcon: setMouseIconStyle1 pointerType: 1001iconType:101 flag:0
01-06 09:21:00.809 788-929/? D/PointerIcon: setMouseCustomIcon IconType is same.101
01-06 09:21:00.809 788-929/? D/PointerIcon: setHoveringSpenIconStyle1 pointerType: 10001iconType:1 flag:0
01-06 09:21:00.809 788-929/? D/PointerIcon: setHoveringSpenCustomIcon IconType is same.1
01-06 09:21:00.809 788-7639/? W/InputMethodManagerService: Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@44723488 attribute=null, token = android.os.BinderProxy@43e91b78
01-06 09:21:00.819 21153-21153/? E/ViewRootImpl: sendUserActionEvent() mView == null
01-06 09:21:00.819 21153-21773/? I/System.out: Thread-8030(ApacheHTTPLog):Reading from variable values from setDefaultValuesToVariables
01-06 09:21:00.829 21153-21773/? I/System.out: Thread-
同样有趣的是,当我删除对 firebase 的调用时,我收到以下错误:
already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@43d606d0 attribute=null, token = android.os.BinderProxy@440d9208
01-06 09:38:11.229 23736-23736/? W/dalvikvm: VFY: unable to find class referenced in signature (Landroid/net/Network;)
01-06 09:38:11.229 23736-23736/? W/dalvikvm: VFY: unable to find class referenced in signature (Landroid/net/Network;)
01-06 09:38:11.229 23736-23736/? I/dalvikvm: Could not find method android.net.Network.openConnection, referenced from method com.google.android.gms.http.GoogleURLConnectionFactory.openConnection
01-06 09:38:11.229 23736-23736/? W/dalvikvm: VFY: unable to resolve virtual method 1596: Landroid/net/Network;.openConnection (Ljava/net/URL;)Ljava/net/URLConnection;
01-06 09:38:11.229 23736-23736/? D/dalvikvm: VFY: replacing opcode 0x6e at 0x00a0
01-06 09:38:11.229 23736-23736/? I/GoogleURLConnFactory: Using platform SSLCertificateSocketFactory
01-06 09:38:11.229 23736-23736/? I/GoogleHttpClient: Using GMS GoogleHttpClient
01-06 09:38:11.229 23736-23736/? W/ActivityThread: ClassLoader.loadClass: The class loader returned by Thread.getContextClassLoader() may fail for processes that host multiple applications. You should explicitly specify a context class loader. For example: Thread.setContextClassLoader(getClass().getClassLoader());
01-06 09:38:11.319 23736-23736/? I/GHttpClientFactory: Using our fixed implementation of GMSCore's GoogleHttpClient
01-06 09:38:11.319 23736-23736/? I/GoogleURLConnFactory: Using platform SSLCertificateSocketFactory
01-06 09:38:11.329 222-416/? E/cutils: Failed to mkdirat(/storage/extSdCard/Android): Read-only file system
01-06 09:38:11.329 23736-23736/? W/ContextImpl: Failed to ensure directory: /storage/extSdCard/Android/data/com.google.android.music/files
01-06 09:38:11.329 222-416/? W/Vold: Returning OperationFailed - no handler for errno 30
01-06 09:38:11.389 222-416/? E/cutils: Failed to mkdirat(/storage/extSdCard/Android): Read-only file system
01-06 09:38:11.389 23736-23736/? W/ContextImpl: Failed to ensure directory: /storage/extSdCard/Android/data/com.google.android.music/files
01-06 09:38:11.389 222-416/? E/cutils: Failed to mkdirat(/storage/extSdCard/Android): Read-only file system
01-06 09:38:11.389 23736-23736/? W/ContextImpl: Failed to ensure directory: /storage/extSdCard/Android/data/com.google.android.music/files
01-06 09:38:11.389 222-416/? W/Vold: Returning OperationFailed - no handler for errno 30
01-06 09:38:11.389 222-416/? W/Vold: Returning OperationFailed - no handler for errno 30
01-06 09:38:11.399 23736-23736/? D/MusicLifecycle: com.google.android.music.MusicApplication generated event: Application created
01-06 09:38:11.439 23736-23736/? D/dalvikvm: DexOpt: couldn't find static field Landroid/os/Build;.SUPPORTED_ABIS
01-06 09:38:11.439 23736-23736/? W/dalvikvm: VFY: unable to resolve static field 120 (SUPPORTED_ABIS) in Landroid/os/Build;
01-06 09:38:11.439 23736-23736/? D/dalvikvm: VFY: replacing opcode 0x62 at 0x000a
01-06 09:38:11.439 23736-23736/? D/dalvikvm: DexOpt: couldn't find field Landroid/content/pm/ApplicationInfo;.splitSourceDirs
01-06 09:38:11.439 23736-23736/? W/dalvikvm: VFY: unable to resolve instance field 36
01-06 09:38:11.439 23736-23736/? D/dalvikvm: VFY: replacing opcode 0x54 at 0x005f
01-06 09:38:11.449 23736-23736/? D/dalvikvm: DexOpt: couldn't find static field Landroid/os/Build;.SUPPORTED_ABIS
01-06 09:38:11.449 23736-23736/? W/dalvikvm: VFY: unable to resolve static field 120 (SUPPORTED_ABIS) in Landroid/os/Build;
01-06 09:38:11.449 23736-23736/? D/dalvikvm: VFY: replacing opcode 0x62 at 0x0047
01-06 09:38:11.449 23736-23736/? D/dalvikvm: DexOpt: couldn't find field Landroid/content/pm/ApplicationInfo;.splitSourceDirs
01-06 09:38:11.449 23736-23736/? I/dalvikvm: DexOpt: unable to optimize instance field ref 0x0024 at 0x63 in Lcom/google/android/gms/common/util/ay;.b
01-06 09:38:11.449 23736-23736/? D/dalvikvm: Trying to load lib /data/app-lib/com.google.android.gms-22/libgmscore.so 0x420f7a10
01-06 09:38:11.449 23736-23736/? D/dalvikvm: Added shared lib /data/app-lib/com.google.android.gms-22/libgmscore.so 0x420f7a10
01-06 09:38:11.449 23736-23736/? D/dalvikvm: No JNI_OnLoad found in /data/app-lib/com.google.android.gms-22/libgmscore.so 0x420f7a10, skipping init
01-06 09:38:11.459 23736-23736/? D/dalvikvm: Trying to load lib /data/app-lib/com.google.android.gms-22/libconscrypt_gmscore_jni.so 0x420f7a10
01-06 09:38:11.459 23736-23736/? D/dalvikvm: Added shared lib /data/app-lib/com.google.android.gms-22/libconscrypt_gmscore_jni.so 0x420f7a10
01-06 09:38:11.519 23736-23736/? D/dalvikvm: Trying to load lib /data/app-lib/com.google.android.gms-22/libgmscore.so 0x420f7a10
01-06 09:38:11.519 23736-23736/? D/dalvikvm: Shared lib '/data/app-lib/com.google.android.gms-22/libgmscore.so' already loaded in same CL 0x420f7a10
01-06 09:38:11.519 23736-23736/? D/dalvikvm: Trying to load lib /data/app-lib/com.google.android.gms-22/libconscrypt_gmscore_jni.so 0x420f7a10
01-06 09:38:11.519 23736-23736/? D/dalvikvm: Shared lib '/data/app-lib/com.google.android.gms-22/libconscrypt_gmscore_jni.so' already loaded in same CL 0x420f7a10
01-06 09:38:11.599 23736-23736/? I/ProviderInstaller: Installed default security provider GmsCore_OpenSSL
01-06 09:38:11.599 23736-23736/? D/AndroidMusic: GMSCore installation verified
01-06 09:38:11.629 23736-23736/? I/BaseStore: ConfigStore database version: 1
01-06 09:38:11.699 788-1268/? D/WifiDisplayAdapter: getWifiDisplayStatusLocked: result=WifiDisplayStatus{featureState=2, scanState=0, activeDisplayState=0, activeDisplay=null, displays=[], sessionInfo=WifiDisplaySessionInfo: Client/Owner: Client GroupId: Passphrase: SessionId: 0 IP Address: , connectedState=-1, networkQoS=0}
01-06 09:38:11.709 788-1157/? D/WifiDisplayAdapter: getWifiDisplayStatusLocked: result=WifiDisplayStatus{featureState=2, scanState=0, activeDisplayState=0, activeDisplay=null, displays=[], sessionInfo=WifiDisplaySessionInfo: Client/Owner: Client GroupId: Passphrase: SessionId: 0 IP Address: , connectedState=-1, networkQoS=0}
01-06 09:38:11.719 788-1390/? I/AudioService: getStreamVolume 3 index 150
01-06 09:38:11.719 23736-23736/? I/MediaRouter: Found default route: MediaRouter.RouteInfo{ uniqueId=android/.support.v7.media.SystemMediaRouteProvider:DEFAULT_ROUTE, name=Phone, description=null, iconUri=null, enabled=true, connecting=false, connectionState=0, canDisconnect=false, playbackType=0, playbackStream=3, deviceType=0, volumeHandling=1, volume=15, volumeMax=15, presentationDisplayId=-1, extras=null, settingsIntent=null, providerPackageName=android }
01-06 09:38:11.759 1209-1209/? D/WearableService: callingUid 10012, callindPid: 1209
01-06 09:38:11.759 23736-23736/? D/MusicLifecycle: com.google.android.music.net.NetworkMonitor generated event: Service created
01-06 09:38:11.759 23736-23736/? I/NetworkMonitor: type=WIFI subType= reason=null isConnected=true
01-06 09:38:11.799 23736-23736/? D/MusicLifecycle: com.google.android.music.preferences.MusicPreferenceService$MusicPreferenceServiceBinder generated event: Service created
01-06 09:38:11.799 23736-23736/? D/MusicLifecycle: com.google.android.music.download.cache.StorageMigrationService generated event: Service created
01-06 09:38:11.809 23736-23736/? D/MusicLifecycle: com.google.android.music.download.artwork.ArtDownloadService generated event: Service created
01-06 09:38:11.819 788-1272/? D/WifiDisplayAdapter: getWifiDisplayStatusLocked: result=WifiDisplayStatus{featureState=2, scanState=0, activeDisplayState=0, activeDisplay=null, displays=[], sessionInfo=WifiDisplaySessionInfo: Client/Owner: Client GroupId: Passphrase: SessionId: 0 IP Address: , connectedState=-1, networkQoS=0}
01-06 09:38:11.829 23736-23736/? D/MusicLifecycle: com.google.android.music.wear.WearDataTransferConnectionService generated event: Service created
01-06 09:38:11.839 23736-23736/? D/MusicLifecycle: com.google.android.music.net.NetworkMonitor generated event: Broadcast received with context com.google.android.music.net.NetworkMonitor@421f8c00 and intent Intent { act=android.net.conn.CONNECTIVITY_CHANGE flg=0x4000010 (has extras) }
01-06 09:38:11.839 23736-23736/? I/NetworkMonitor: type=WIFI subType= reason=null isConnected=true
01-06 09:38:11.859 23736-23736/? D/MusicLifecycle: com.google.android.music.download.ArtDownloadQueueService generated event: Service created
01-06 09:38:11.879 23736-23736/? D/MusicLifecycle: com.google.android.music.download.cache.ArtCacheService generated event: Service created
01-06 09:38:11.889 23736-23736/? D/MusicLifecycle: com.google.android.music.download.cache.StorageMigrationService generated event: Service destroyed
01-06 09:38:11.899 23736-23760/? W/dalvikvm: threadid=17: thread exiting with uncaught exception (group=0x417e9da0)
01-06 09:38:11.899 23736-23736/? E/ConnectionService: Failed to connect to GoogleApiClient: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
01-06 09:38:11.909 23736-23760/? E/CustomThreadFactory: UNCAUGHT in thread DataSyncServiceHelper-0
java.lang.IllegalStateException: could not connect to GoogleApiClient: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
at com.google.android.wearable.datatransfer.internal.DefaultPeerProvider.blockingConnect(DefaultPeerProvider.java:73)
at com.google.android.wearable.datatransfer.internal.DefaultPeerProvider.getConnectedPeers(DefaultPeerProvider.java:30)
at com.google.android.wearable.datatransfer.internal.DataSyncServiceHelper.processIntent(DataSyncServiceHelper.java:375)
at com.google.android.wearable.datatransfer.internal.DataSyncServiceHelper.access[=13=]0(DataSyncServiceHelper.java:48)
at com.google.android.wearable.datatransfer.internal.DataSyncServiceHelper$IntentProcessor.run(DataSyncServiceHelper.java:716)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
01-06 09:38:11.919 23736-23769/? W/dalvikvm: threadid=23: thread exiting with uncaught exception (group=0x417e9da0)
01-06 09:38:11.919 23736-23769/? E/CustomThreadFactory: UNCAUGHT in thread DataSyncServiceHelper-1
java.lang.IllegalStateException: could not connect to GoogleApiClient: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
at com.google.android.wearable.datatransfer.internal.DefaultPeerProvider.blockingConnect(DefaultPeerProvider.java:73)
at com.google.android.wearable.datatransfer.internal.DefaultPeerProvider.getConnectedPeers(DefaultPeerProvider.java:30)
at com.google.android.wearable.datatransfer.internal.DataSyncServiceHelper.processIntent(DataSyncServiceHelper.java:375)
at com.google.android.wearable.datatransfer.internal.DataSyncServiceHelper.access[=13=]0(DataSyncServiceHelper.java:48)
at com.google.android.wearable.datatransfer.internal.DataSyncServiceHelper$IntentProcessor.run(DataSyncServiceHelper.java:716)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
01-06 09:38:11.969 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster - setNWBoosterIndicators(false)
01-06 09:38:11.969 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster: data=0 bt=false
01-06 09:38:11.979 1056-1056/? D/STATUSBAR-IconMerger: checkOverflow(144), More:true, Req:true Child:8
01-06 09:38:11.999 788-918/? D/SensorService: 0.7 0.5 9.7
01-06 09:38:12.819 234-234/? E/SMD: DCD ON
01-06 09:38:12.969 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster - setNWBoosterIndicators(false)
01-06 09:38:12.969 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster: data=0 bt=false
01-06 09:38:12.979 1056-1056/? D/STATUSBAR-IconMerger: checkOverflow(144), More:true, Req:true Child:8
01-06 09:38:13.109 788-2514/? D/SSRMv2:SIOP: SIOP:: AP = 300, Delta = 0
01-06 09:38:13.889 1344-1344/? I/NetworkEventSource: onSignalStrengthsChanged
01-06 09:38:13.889 1056-1056/? D/STATUSBAR-NetworkController: onSignalStrengthsChanged signalStrength=SignalStrength: 99 -1 -1 -1 -1 -1 -1 23 -98 -9 128 -1 2147483647 gsm|lte 0x5 level=5
01-06 09:38:13.899 1179-1179/? D/WfcPhoneStateListener: onSignalStrengthsChanged(): signal strength did not change
01-06 09:38:14.019 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster - setNWBoosterIndicators(false)
01-06 09:38:14.019 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster: data=0 bt=false
01-06 09:38:14.029 1056-1056/? D/STATUSBAR-IconMerger: checkOverflow(144), More:true, Req:true Child:8
01-06 09:38:15.059 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster - setNWBoosterIndicators(false)
01-06 09:38:15.059 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster: data=0 bt=false
01-06 09:38:15.079 1056-1056/? D/STATUSBAR-IconMerger: checkOverflow(144), More:true, Req:true Child:8
01-06 09:38:15.299 788-918/? D/SensorService: 0.7 0.5 9.7
01-06 09:38:15.809 234-234/? E/SMD: DCD ON
01-06 09:38:16.699 23736-23736/? D/MusicLifecycle: com.google.android.music.leanback.AutoCacheSchedulingService$EnablingReceiver generated event: Broadcast received with context android.app.ReceiverRestrictedContext@42253710 and intent Intent { act=com.google.android.music.START_DOWNLOAD_SCHEDULING flg=0x10 cmp=com.google.android.music/.leanback.AutoCacheSchedulingService$EnablingReceiver }
01-06 09:38:16.769 23736-23736/? D/MusicLifecycle: com.google.android.music.leanback.AutoCacheSchedulingService generated event: Service created
01-06 09:38:16.789 23736-23736/? D/MusicLifecycle: com.google.android.music.leanback.AutoCacheSchedulingService generated event: Service started with intent Intent { act=com.google.android.music.leanback.APP_IN_USE cmp=com.google.android.music/.leanback.AutoCacheSchedulingService (has extras) }
01-06 09:38:16.789 23736-23736/? D/MusicLifecycle: com.google.android.music.wear.WearBroadcastReceiver generated event: Broadcast received with context android.app.ReceiverRestrictedContext@42253710 and intent Intent { act=com.google.android.music.START_DOWNLOAD_SCHEDULING flg=0x10 cmp=com.google.android.music/.wear.WearBroadcastReceiver }
01-06 09:38:16.809 23736-23736/? D/MusicLifecycle: com.google.android.music.download.TrackDownloadQueueService generated event: Service created
01-06 09:38:16.829 23736-23736/? D/MusicLifecycle: com.google.android.music.download.cache.TrackCacheService generated event: Service created
01-06 09:38:16.839 23736-23736/? D/MusicLifecycle: com.google.android.music.wear.WearMetadataSyncService generated event: Service created
01-06 09:38:16.859 23736-23736/? D/MusicLifecycle: com.google.android.music.wear.WearMetadataSyncService generated event: Service started with intent Intent { cmp=com.google.android.music/.wear.WearMetadataSyncService }
01-06 09:38:16.889 23736-23736/? E/GmsUtils: Failed to connect to Google API client: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
01-06 09:38:16.889 23736-23780/? E/GmsUtils: Failed to connect to Google API client: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
01-06 09:38:16.889 23736-23736/? D/MusicLifecycle: com.google.android.music.wear.WearMetadataSyncService generated event: Service destroyed
01-06 09:38:16.899 23736-23776/? I/MusicLeanback: Conditions not met for autocaching. okToAttempt=false
01-06 09:38:16.899 23736-23776/? I/MusicLeanback: Stop autocaching.
01-06 09:38:16.899 23736-23736/? D/MusicLifecycle: com.google.android.music.download.cache.TrackCacheService generated event: Service destroyed
01-06 09:38:16.899 23736-23736/? D/MusicLifecycle: com.google.android.music.download.TrackDownloadQueueService generated event: Service destroyed
01-06 09:38:18.599 788-918/? D/SensorService: 0.7 0.5 9.7
01-06 09:38:18.819 234-234/? E/SMD: DCD ON
01-06 09:38:20.209 788-809/? D/BatteryService: level:81, scale:100, status:2, health:2, present:true, voltage: 4178, temperature: 226, technology: Li-ion, AC powered:false, USB powered:true, Wireless powered:false, icon:17303558, invalid charger:0, online:4, current avg:450, charge type:2, power sharing:false
01-06 09:38:20.209 788-788/? D/BatteryService: Sending ACTION_BATTERY_CHANGED.
01-06 09:38:20.219 788-788/? I/Tethering: BATTERY_CHANGED, level = 81lowBatteryThreshold = 15
01-06 09:38:20.229 1056-1056/? D/KeyguardUpdateMonitor: received broadcast android.intent.action.BATTERY_CHANGED
01-06 09:38:20.229 1056-1056/? D/KeyguardUpdateMonitor: handleBatteryUpdate
01-06 09:38:20.249 1056-1056/? D/STATUSBAR-PhoneStatusBar: mBrightnessEnablebySettings = true mBrightnessEnablebyBattery = true mBrightnessEnablebyDisableFlag = true mPmsBrightnessEnablebySettings = true
01-06 09:38:20.259 1056-1056/? D/STATUSBAR-IconMerger: checkOverflow(144), More:true, Req:true Child:8
01-06 09:38:20.269 1056-1056/? D/BatteryMeterView: ACTION_BATTERY_CHANGED : level:81 status:2 health:2
01-06 09:38:21.109 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster - setNWBoosterIndicators(false)
01-06 09:38:21.109 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster: data=0 bt=false
01-06 09:38:21.109 1056-1056/? D/STATUSBAR-IconMerger: checkOverflow(144), More:true, Req:true Child:8
01-06 09:38:21.819 234-234/? E/SMD: DCD ON
01-06 09:38:21.899 788-918/? D/SensorService: 0.7 0.5 9.7
01-06 09:38:22.159 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster - setNWBoosterIndicators(false)
01-06 09:38:22.159 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster: data=0 bt=false
01-06 09:38:22.179 1056-1056/? D/STATUSBAR-IconMerger: checkOverflow(144), More:true, Req:true Child:8
01-06 09:38:22.849 1056-1056/? D/STATUSBAR-NetworkController: onSignalStrengthsChanged signalStrength=SignalStrength: 99 -1 -1 -1 -1 -1 -1 23 -98 -10 150 -1 2147483647 gsm|lte 0x5 level=5
01-06 09:38:22.859 1344-1344/? I/NetworkEventSource: onSignalStrengthsChanged
01-06 09:38:22.859 1179-1179/? D/WfcPhoneStateListener: onSignalStrengthsChanged(): signal strength did not change
01-06 09:38:23.139 788-2514/? D/SSRMv2:SIOP: SIOP:: AP = 300, Delta = 0
01-06 09:38:24.189 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster - setNWBoosterIndicators(false)
01-06 09:38:24.189 1056-1056/? D/STATUSBAR-NetworkController: refreshSignalCluster: data=0 bt=false
必须确保在 Firebase 仪表板中启用电子邮件和密码登录设置。 .createUser() 方法然后填充此仪表板中的列表。