微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Spring Boot

如何解决在Spring Boot

我正在尝试将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中,请看图片

enter image description here

enter image description here

所以这是我有关服务器的所有详细信息! 我想将通知从后端推送到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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。