【问题标题】:Firebase admin SDK With Java, failed to parseFirebase admin SDK 使用 Java,无法解析
【发布时间】:2018-12-16 04:12:02
【问题描述】:

我是 firebase 开发新手,我尝试将一个简单的字符串推送到 firebase 实时数据库,但一直出错。

我的代码

public static void main(String[] args) {
    try {
        initializeFirebase();
    } catch (IOException e) {
        e.printStackTrace();
    }

    FirebaseDatabase database = FirebaseDatabase.getInstance();
    DatabaseReference myRootRef = database.getReference();
    DatabaseReference condRef = myRootRef.child("condition");

    condRef.setValueAsync("ok", new DatabaseReference.CompletionListener() {
        public void onComplete(DatabaseError arg0, DatabaseReference arg1) {
            System.out.println("success");
        }
    });

}

private static void initializeFirebase() throws IOException {
    FileInputStream serviceAccount = new FileInputStream("adarofirebase.json");

    FirebaseOptions options = new FirebaseOptions.Builder()
            .setCredentials(GoogleCredentials.fromStream(serviceAccount))
            .setDatabaseUrl("https://adarofirebase.firebaseio.com/").build();

    FirebaseApp.initializeApp(options);
}

错误堆栈跟踪:

Exception in thread "main" com.google.firebase.database.DatabaseException:
Failed to parse node with class class com.arya.firebase.App$1

我一整天都在想办法,但还是没有运气。提前致谢

【问题讨论】:

    标签: java firebase firebase-realtime-database firebase-admin


    【解决方案1】:

    您使用错误的参数调用 setValueAsync() 方法:

    public ApiFuture<Void> setValueAsync(Object value, Object priority)

    第二个参数是priority,它应该是一个 JSON 可解析的值。您正在传递一个 CompletionListener,它不是 JSON 可解析的。

    【讨论】:

    • 哦,我明白了,但是如果您查看 firebase admin sdk 指南,在添加完成回调部分,他们将 CompletionListener 作为第二个参数。所以可能该指南还不是最新的?
    • 我认为你是对的。该示例应使用setValue() 方法而不是setValueAsync()。我已经提交了一个错误来更新文档。感谢您指出。
    猜你喜欢
    • 1970-01-01
    • 2019-09-24
    • 2019-12-27
    • 1970-01-01
    • 2018-08-16
    • 2017-09-27
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    相关资源
    最近更新 更多