<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="@string/default_notification_channel_id"/>
<meta-data android:name="firebase_messaging_auto_init_enabled"
android:value="false" />
<meta-data android:name="firebase_analytics_collection_enabled"
android:value="false" />
....
<service
android:name=".services.MyFirebaseMessagingService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
<service
android:name=".services.MyFirebaseInstanceIDService"
android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
....
MyFireBaseMessagingService.Class
public class MyFirebaseMessagingService extends FirebaseMessagingService {
private static final String TAG = "MessagingService";
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
Log.e(TAG, String.valueOf(remoteMessage));
}
}
MyFireBaseInstanceIDService.Class
public class MyFirebaseInstanceIDService extends FirebaseInstanceIdService {
private static final String TAG = "InstanceIdService";
@Override
public void onTokenRefresh() {
super.onTokenRefresh();
if (FirebaseAuth.getInstance().getCurrentUser() == null){
return;
}
String tokenId = FirebaseInstanceId.getInstance().getToken();
saveTokenIdToDatabase(tokenId);
}
}
signOutAccount方法
private void signOutAccount(){
FirebaseAuth.getInstance.signOut();
Intent intent = new Intent(getApplicationContext(), LoginActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finishAffinity();
}
你不是唯一一个在苦苦挣扎的人。我也有类似问题。重新安装(或更新)应用程序后,我在BaseActivity中检查用户是否已登录。他是..FireBaseAuth.GetInstance().GetCurrentUser()
返回了非空值。因此,当我使用uid
从firebase数据库获取数据时,我得到了一个混乱的东西--一些随机项。
还要注意,我只能在某些设备上复制它。例如,我在Nexus5x上得到了非空值,但在OnePlue3T(8.0.0)上没有。
经过一番调查,我发现了几个有趣的事实。
事实2
Android应用有时会在重新安装应用后记得自己的数据,因为自动备份。更多详情请看帖子。
解决方案
<application
android:allowBackup="false"
android:fullBackupContent="false"
...>
在本章中,我们将匿名认证用户。 步骤1 - 启用匿名身份验证 这和我们以前的章节是一样的。需要打开Firebase信息中心,点击侧边菜单中的Auth和标签栏内的认证方法,需要启用匿名身份验证。 第2步 - 登录功能 可以使用方法进行此认证。 示例 让我们来看看下面的例子,参考示例代码 -
我正在使用Firebase Google登录。它可以通过USB调试完美地工作。但当我生成签名的APK时,它停止工作。无法登录。在Android5.1上使用它
电话身份验证失败,出现以下异常: PlatformException(ERROR_SESSION_EXPIRED,sms代码已过期。请重新发送验证码重试。,null) 但如果我使用的电话号码不同于我的电话号码,它就会起作用。我从play store中添加了SHA-1和SHA-256指纹到firebase,并替换了google-services.json。 这是我的代码:
当使用Firebase身份验证匿名帐户时,它偶尔会在系统中创建一个新的用户ID,有时它会使用相同的用户ID。我真的希望每次都能创建相同的用户ID,这样匿名用户仍然可以在应用程序中维护相同的进度/数据。这实际上是我开始使用Firebase的原因。即使在重新启动应用程序等之后,我如何始终维护一个匿名帐户来保持相同的用户ID? 我希望用户每次以访客身份玩游戏时都能获得相同的ID。我看到有些应用程序在卸载
我一直很难找到Google Firebase身份验证背后的SLA。根据托管和实时数据库的服务水平协议,Firebase的每月正常运行时间百分比应至少达到99.95%。它是否适用于身份验证服务?
我在令牌使用者上得到以下错误。任何帮助解决这将是非常感谢的。多谢了。 “IDX10503:签名验证失败。 公共无效配置(IApplicationBuilder应用程序)