如何解决使用管理 SDK 连接到 Firebase 实时数据库不会触发初始 onDataChange 回调
我正在尝试使用 Java 中的 Firebase Admin SDK(在 Java 服务器上下文中)从 Firebase 实时数据库中检索数据。 身份验证是使用服务帐户完成的。 我按照官方文档中的所有步骤进行操作。 在以下代码段中,回调 onDataChange 应该至少被调用一次以访问初始快照。
每条指令都是静默完成的,所以它表明一切都是正确的(身份验证、连接到数据库),但从未调用此回调。
你知道出了什么问题吗?
final CountDownLatch latch = new CountDownLatch(1);
GoogleCredentials credentials = GoogleCredentials.fromStream(serviceAccount);
FirebaSEOptions options = FirebaSEOptions.builder()
.setCredentials(credentials)
.setDatabaseUrl( getDBUrl() )
.setDatabaseAuthVariableOverride(auth)
.build();
FirebaseApp app = FirebaseApp.initializeApp(options);
DatabaseReference dbRef = FirebaseDatabase.getInstance().getReference( ref );
dbRef.addValueEventListener(new ValueEventListener() {
public void onDataChange(DataSnapshot ds) {
System.out.println("onDataChange");
latch.countDown();
}
public void onCancelled(DatabaseError de) {
System.out.println("onCancelled");
latch.countDown();
}
});
latch.await();
解决方法
经过一番调查,Google 库之间的冲突是导致此问题的根本原因。我不完全知道哪些(但它应该与 oauth 和凭据有关)。 我正在从事的项目已经使用 Google 库来处理 Android 管理 API 和 Google Cloud 平台。我都升级了,问题解决了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。