android – Firebase addValueEventListener只能工作几个小时

android – Firebase addValueEventListener只能工作几个小时,第1张

概述有没有人遇到过这个问题?我的firebase代码只能工作几个小时(完全功能和全部),然后当我再试一次它不再工作.请参阅下面的代码,了解我如何调用它: ValueEventListener valueEventListener = new ValueEventListener() { @Override public void onDataChange 有没有人遇到过这个问题?我的firebase代码只能工作几个小时(完全功能和全部),然后当我再试一次它不再工作.请参阅下面的代码,了解我如何调用它:
ValueEventListener valueEventListener = new ValueEventListener() {            @OverrIDe            public voID onDataChange(DataSnapshot dataSnapshot) {                Log.e(TAG,"onDataChange: Job found");                for (DataSnapshot jobSnapShot : dataSnapshot.getChildren()) {                    Log.e(TAG,"onDataChange: Job +1");                    Job job = jobSnapShot.getValue(Job.class);                    // Add the ID into the job                    job.setID(dataSnapshot.getKey());                    // Set the job                    arrayList.add(job);                    subscriber.onNext(job);                }            }            @OverrIDe            public voID onCancelled(DatabaseError databaseError) {                Log.e(TAG,"onCancelled: " + databaseError.getMessage());            }        };        Log.e(TAG,"call: ID:" + userID + ",reference:" + FirebaseDatabase.getInstance().getReference().toString());        Log.e(TAG,"call: Calling Jobs...");        FirebaseDatabase.getInstance()                .getReference()                .child(context.getString(R.string.firebase_jobs))                .child(userID).                addValueEventListener(valueEventListener);

线条:

Log.e(TAG,reference:" + FirebaseDatabase.getInstance().getReference().toString());    Log.e(TAG,"call: Calling Jobs...");

每次都执行. UserID和getReference返回正确的值.但是,基本上几个小时之后,addValueEventListener似乎没有添加监听器.解决此问题的唯一方法是注销并重新登录.

编辑:

我的身份验证状态监听器代码:

firebaseAccount = getFirebaseAccount();firebaseAccount.getAuth().addAuthStateListener(firebaseAccount.getAuthListener());

在firebaseAccount中:

public FirebaseAuth.AuthStateListener getAuthListener() {    return authStateListener;}FirebaseAuth.AuthStateListener authStateListener = new FirebaseAuth.AuthStateListener() {    @OverrIDe    public voID onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {        FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();        if (firebaseUser != null) {            String ID = firebaseUser.getUID();            // User is signed in            Log.e(TAG,"onAuthStateChanged: Signed in as " + ID);            // Start loginActivity when signed in            loginActivity.onLoginSuccess(ID);        } else {            // User is not signed in            Log.e(TAG,"onAuthStateChanged: Signed out");            // User probably logged out. Finish the loginActivity and launch the login screen        }    }};
解决方法 此问题是由Firebase身份验证令牌未正确刷新本身引起的,这本身是由Firebase项目中的潜在错误配置引起的.

在用户签名后,您可以通过调用以下代码段来判断令牌刷新是否失败:

FirebaseUser user = mAuth.getCurrentUser(); // mAuth is your current firebase auth instanceuser.getToken(true).addOnCompleteListener(this,new OnCompleteListener<GetTokenResult>() {    @OverrIDe    public voID onComplete(@NonNull Task<GetTokenResult> task) {        if (task.isSuccessful()) {            Log.d(TAG,"token=" + task.getResult().getToken());        } else {            Log.e(TAG,"exception=" +task.getException().toString());        }    }});

(如果出现问题,您将获得例外).

您可以按照我们在Firebase小组中放在一起的this guide进行故障排除并修复可能导致此问题的配置问题.

上述步骤应该是问题的永久性解决方案,但是,我们也在努力实现一种自动检测错误配置并透明地为您修复它们的方法.对可能导致您的任何问题表示歉意.

总结

以上是内存溢出为你收集整理的android – Firebase addValueEventListener只能工作几个小时全部内容,希望文章能够帮你解决android – Firebase addValueEventListener只能工作几个小时所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1134692.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存