为什么CredentialStore警告Java中的Firebase用户身份验证



我正在尝试一些Firebase示例,特别是如何在Java(标准JDK,而不是Android)中验证用户。

每次我运行代码时,我都会从Firebase API得到这些警告:

Sun Jun 28 14:29:58 BST 2015 [WARN] CredentialStore: Using no-op credential store. Not persisting credentials! If you want to persist authentication, please use a custom implementation of CredentialStore.
authenticated ok!

这是指什么?当它暗示持久性时,它是指应用程序会话期间的持久性,还是指应用程序连续运行之间的持久性?如何解决此警告?

以下是代码——它基于Firebase指南上的示例(请注意,帐户详细信息已被掩盖):

package firebase_reader;
import com.firebase.client.AuthData;
import com.firebase.client.Firebase;
import com.firebase.client.FirebaseError;
import java.util.logging.Level;
import java.util.logging.Logger;
public class main
{
    public static void main(String[] args)
    {
        final Firebase fbref = new Firebase("https://XXX.firebaseio.com/");  
        Firebase.AuthResultHandler authResultHandler = new Firebase.AuthResultHandler()
        {
            @Override
            public void onAuthenticated(AuthData authData)
            {
                System.out.print("authenticated ok!n");;
            }
            @Override
            public void onAuthenticationError(FirebaseError firebaseError)
            {
                System.out.print("auth failed:" + firebaseError);
            }
        };
        fbref.authWithPassword("YYY", "ZZZ", authResultHandler);
        try
        {
            while (true) { Thread.sleep(10000); }
        } catch (InterruptedException ex)
        {
            Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);
        }    
    }    
}

使用Firebase Android SDK时,在实例化Firebase客户端时需要一个Android应用程序上下文,该上下文用于在应用程序重新启动时自动保持身份验证状态。

当使用普通的Firebase JVM SDK时,身份验证状态不会自动持久化,因为没有默认机制可以在应用程序重新启动时持久化此状态。如果你不想拥有那个授权。状态自动持久化,则可以忽略该警告。或者,您可以实现Firebase CredentialStore接口,但对于服务器进程来说,这可能不需要。

最新更新