我试图将Firebase Admin SDK添加到我的Java Web应用程序中,但在init上出现以下错误:
java.lang.NoClassDefFoundError: com/google/firebase/FirebaseOptions
at backend.servlets.Init.contextInitialized(Init.java:33)
我将Firebase依赖项添加到pom.xml文件中,并使用以下代码初始化Firebase:ClassLoader ClassLoader=Thread.currentThread().GetContextClassLoader();InputStream为=ClassLoader.GetResourceStream(“ServiceAccount.json”);
FirebaseOptions options = null;
try {
options = FirebaseOptions.builder()
.setCredentials(GoogleCredentials.fromStream(is))
.build();
} catch (IOException e) {
e.printStackTrace();
}
FirebaseApp.initializeApp(options);+
有人能帮我吗?
这里有一个您可以使用的实现;
您可能需要使用@PostConstruct注释。
引用-为什么使用@PostConstruct?
建议的实施
package com.test.config;
import java.io.FileInputStream;
import javax.annotation.PostConstruct;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.ResourceUtils;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.firebase.FirebaseApp;
import com.google.firebase.FirebaseOptions;
import com.google.firebase.messaging.FirebaseMessaging;
@Configuration
public class FirebaseConfig {
@Bean
public FirebaseMessaging firebaseMessaging() {
FirebaseMessaging firebase = FirebaseMessaging.getInstance();
return firebase;
}
@PostConstruct
public void init() {
try (FileInputStream serviceAccount = new FileInputStream(
ResourceUtils.getFile("classpath:ServiceAccount.json"));) {
@SuppressWarnings("deprecation")
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount)).build();
if (FirebaseApp.getApps().isEmpty()) {
FirebaseApp.initializeApp(options);
}
System.out.println("#####Firebase Initialized#####");
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
我试图初始化管理SDK,但在服务号初始化中面临400个坏请求。它在我的开发窗口环境中工作得很好,但是当我在linux中部署时,我面临着这个问题。 我正在从属性文件读取文件路径。 我当时正试图发送推送通知,当时我正面临问题。 查出
在firebase storage的web sdk中,您可以从Blob数据上载图像。我有一个nodeJS应用程序,想将blob数据中的图像上传到我的存储桶中。在文档中,如果运行节点服务器环境,建议使用AdminSDK。但我在firbase存储管理文档中找不到此功能。 这是我的密码:
Firebase Admin SDK文档清楚地说明,服务帐户对存储帐户具有完全的范围控制,但由于传输令牌源为nil,因此正确引导凭据似乎有些错误。
我试图从我的移动混合应用程序(离子3)发送一张图片到我的Heroku后端(Node.js),并让后端将图片上传到Firebase存储,并将新上传的fil下载url返回到移动应用程序。 上载成功,但当我转到Firebase存储控制台时,当我试图显示图片的预览时出现错误,下载时无法从计算机打开它。我想这是一个编码的东西...? 如何检索新上传的文件下载url?我希望在中返回一个对象,就像在函数中一样,
根据文档,我必须把文件名传递给函数才能上传一个文件。 我想能做这样的事
我试图在我的函数文件夹中初始化Firebase admin sdk,以便我的云函数可以通过管理员读/写访问访问我的数据库,但是当我试图部署我的函数时,会返回以下错误 错误:错误分析触发器:找不到模块'/serviceKey'。json' 我曾尝试在functions目录中运行npm安装,但没有任何帮助。 这是我的包裹。json文件 这是我的index.js档案