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

Why CredentialStore warning for Firebase user authentication in Java?

我正在尝试一些 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 应用程序上下文 - 此上下文用于在应用程序重新启动时自动保留身份验证状态 .

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