问题描述
我正在尝试将JSON文件放入代码中,但是在调试器中我总是得到NULL:
package com.jacobtrashcompany.google;
import java.io.IOException;
import java.nio.file.Paths;
import javax.annotation.postconstruct;
import com.google.api.client.util.Value;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.firebase.FirebaseApp;
import com.google.firebase.FirebaSEOptions;
import com.google.firebase.database.core.Path;
import org.hibernate.annotations.common.util.impl.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import ch.qos.logback.classic.Logger;
@Service
@Component
public class FCMInitializer {
@Value("${app.firebase-configuration-file}")
private String firebaseConfigPath;
//Logger logger = LoggerFactory.getLogger(FCMInitializer.class);
@postconstruct
public void initialize() {
// logged.info("Start init");
try {
FirebaSEOptions options = new FirebaSEOptions.Builder()
.setCredentials(
GoogleCredentials.fromStream(new ClassPathResource(firebaseConfigPath).getInputStream()))
.build();
if (FirebaseApp.getApps().isEmpty()) {
FirebaseApp.initializeApp(options);
}
} catch (final IOException e) {
System.out.print("**************************************************"+ e);
}
}
}
这是我的FCMService:
package com.jacobtrashcompany.google;
import com.google.firebase.messaging.FirebaseMessaging;
import com.google.firebase.messaging.FirebaseMessagingException;
import com.google.firebase.messaging.Message;
import com.jacobtrashcompany.Model.PnsRequest;
import org.springframework.stereotype.Service;
@Service
public class FCMService {
public String pushNotification(PnsRequest pnsRequest) {
Message message = Message.builder()
.putData("content",pnsRequest.getContent())
.setToken(pnsRequest.getFcmToken())
.build();
String response = null;
try {
response = FirebaseMessaging.getInstance().send(message);
} catch (FirebaseMessagingException e) {
e.printstacktrace();
}
return response;
}
}
这是我的PnsRequest:
package com.jacobtrashcompany.Model;
public class PnsRequest {
private String fcmToken;
private String content;
public String getFcmToken() {
return fcmToken;
}
public void setFcmToken(String fcmToken) {
this.fcmToken = fcmToken;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
这是我的json文件“使用Linux的iam”的路径
app.firebase-configuration-file=/home/okba/Documents/webServer/src/main/resources/JSON/notificationpush-94201-firebase-adminsdk-hqxpf-b21a6f50b9.json
这是我的JSON文件:
{
"type": "service_account","project_id": "notificationpush-94201","private_key_id": "34d0d55f8b0ee63889f9e225d087c6170d016c","private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCUJf9C1vWSqI67\nn7a/mzPJMbXzBrK9gN2xdU2j6a26FQvYvnWnkVMmyLDNEXWLh6adxjTnPrfKuvDb\n5y60nwWKAd7i4U3iZnt53kDvS5Za9R3S/8VQ0DBen7npCrkM3gEjehBE6xd04TMv\nxDDHdDiMQbMNQEuxsKBtAeBKv8vTK21tJCUh4/xpcqK/FWqIPKJOIVdeKge6PUbW\nknKPj/OISaWjXn+6gs+fB6v0NKtnQoZ87XWmzTr6dK72fx5EN7IdlKrIu\nF7f3jP6YyOcHc7Gk/DByNBz3sF1vRXwd7up/kDuWahMNjBtFvTvuK4cbU5f1s8+k\nu0FmLKE/AgMBAAECggEABUcomxorFpCrFnPKtXR95FGWkLQbjb/NEM5D4q6SZ2Tq\nOUxpHFFY8TKeMI102XCO7DkMV8lhZTdtbvrYrEusDVjNYYTdsE6utc6daUkRRWf3\n1OAS3ghaE3eaTntOJhoKAq24bal4ekwESv6GLweXdNEUZB5MdBCoWSnYx/ZMTddv\nhaVdIuNHUxXELKLl4EeV92InT1EQZpzzZrkPe9MVJcOT3ckk97\nDeIGAVvs+k5mpri5sSsePvIvO5zJZJ11A5QySO9mJm1t7ejYNMghwI+S1+UXCJuD\nmqcsg9MJ7HRQgSc3sIiswQ4/MiAkIWCAcsG9NjEVTQKBgQDHpNBsvnrYGv9vGyrJ\ng8rSCMdRKaZh2Twv06RL4CBJ/2pkutK8kUHqEqT+CYQ3BfMYS4Jc6fwdmcOmWcRn\n2H/SL+zahxp0PJ/vLFlEzsp+/voUoXK//LZ3oJkBv5SO6Ut+FnEOOB+X0MH8SVBv\n0/qCY8P4hTxddbVhJUGE3pIIZQKBgQC99+NurhsLbXbF881oVI7R1LxUcQpUdMtt\nhUejTe868UqvooNhbQ2Q14Wv88fGPzSQdBLBFxkKa6H2Nv05i0kcsSL3h/g/oTQE\n9CAC3poj4nAtrSHqcYqTFIamZaxFMOycX4X+A1O4raMDZlEtWD8s6lxrOM0+5uqo\n+5u6vxZ+0wKBgEQqoUPQEg/BwB/GrehaiKEIgE3VI8tbKjLGV93UbBH4FPLJ23Sp\nQFFVBmL7CtrivCs6dQuWlQ/iVaxyEB7JDHPPC1deNAkmPhGjGePlm7ybAPaUXaLx\n/beA7V1sdaQKQk2OChIp1Ze3ntSuj7lvLqTgvaQYkhDzRPgjiWh9um0FAoGAAfQk\nsKS1vn5XtF13hVUpStsnPK8U7h1tYij2vaU1iqOkov3G4B+g/hZZV5/oNA++WKX4\n82draIIG3mNeY1MdY2Am/ei2EuFziYGBOsZTS38urCmVqbWVOUICyH9PMD76j/kj\nhaM/Hy0Z+hT5TMAVlj6qyKeC5Ny3GRnNVjRU5OUCgYACufDTrmnYMslFGVBxQbXZ\nvtcfAkl44RoNY3RnMULyNt6JICq7Y0yiot6Foe21wvU/53oVASwqolca8\nYu+498uHQBMJGPWxAk5FJVPlHGG55S3bE+zkOeyEsU/ByFz/nle/O9nhyMsUeB4V\nvPFDq/E10SEfcLUxfVrX4Q==\n-----END PRIVATE KEY-----\n","client_email": "firebase-adminsdk-hqxpf@notificationpush-94201.iam.gserviceaccount.com","client_id": "115179550548917479389","auth_uri": "https://accounts.google.com/o/oauth2/auth","token_uri": "https://oauth2.googleapis.com/token","auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs","client_x509_cert_url": "https://www.googleapis.com/robot/v1/Metadata/x509/firebase-adminsdk-hqxpf%40notificationpush-94201.iam.gserviceaccount.com"
}
我的JSON文件位于项目中的src/main/resources/JSON/otificationpush-94201-firebase-adminsdk-hqxpf-b21a6f50b9.json
中,请看图片
所以这是我有关服务器的所有详细信息! 我想将通知从后端推送到Android应用程序的所有内容。
解决方法
您尚未用FCMInitializer
标记@Component
。这意味着您的类不是托管bean。这意味着@Value()
无法正常工作!
app.firebase-configuration-file=/home/okba/Documents/webServer/src/main/resources/JSON/notificationpush-94201-firebase-adminsdk-hqxpf-b21a6f50b9.json
到
app.firebase-configuration-file=JSON/notificationpush-94201-firebase-adminsdk-hqxpf-b21a6f50b9.json