Erwartete primitive Klasse, aber Got: Klasse com.google.api.client.json.genericjson
Posted: 13 May 2025, 16:03
Ich habe diesen Fehler, wenn Sie versuchen, das -Access -Token für OAuth 2.0 zu erhalten, um eine Benachrichtigung an ein anderes Telefon zu senden.
Aus der Dokumentation gibt der FromStream (inputStream -Anmeldeinformationen) Anmeldeinformationen zurück, die durch einen JSON -Dateistrom definiert sind.public class AccessToken {
private static final String firebaseMessagingScope = "https://www.googleapis.com/auth/firebase.messaging";
public String getAccessToken() {
try {
String jsonString = "my Firebase service account with firebase Admin SDK"; //.json (service_account, project_id, peivate_key_id,...)
InputStream inputStream = new ByteArrayInputStream(jsonString.getBytes(StandardCharsets.UTF_8));
GoogleCredentials googleCredentials = GoogleCredentials.fromStream(inputStream); ---> THE ERROR
googleCredentials.createScoped(Lists.newArrayList(firebaseMessagingScope));
googleCredentials.refresh();
return googleCredentials.getAccessToken().getTokenValue();
} catch (IOException e) {
Log.e("error", e.toString());
return null;
}
}
}
< /code>
Kann mir jemand bei diesem Problem helfen? Jede Hilfe/Vorschlag wird sehr geschätzt.
Code: Select all
Caused by: java.lang.IllegalArgumentException: expected primitive class, but got: class com.google.api.client.json.GenericJson
Aus der Dokumentation gibt der FromStream (inputStream -Anmeldeinformationen) Anmeldeinformationen zurück, die durch einen JSON -Dateistrom definiert sind.public class AccessToken {
private static final String firebaseMessagingScope = "https://www.googleapis.com/auth/firebase.messaging";
public String getAccessToken() {
try {
String jsonString = "my Firebase service account with firebase Admin SDK"; //.json (service_account, project_id, peivate_key_id,...)
InputStream inputStream = new ByteArrayInputStream(jsonString.getBytes(StandardCharsets.UTF_8));
GoogleCredentials googleCredentials = GoogleCredentials.fromStream(inputStream); ---> THE ERROR
googleCredentials.createScoped(Lists.newArrayList(firebaseMessagingScope));
googleCredentials.refresh();
return googleCredentials.getAccessToken().getTokenValue();
} catch (IOException e) {
Log.e("error", e.toString());
return null;
}
}
}
< /code>
Kann mir jemand bei diesem Problem helfen? Jede Hilfe/Vorschlag wird sehr geschätzt.