我们正在将一个旧项目迁移到 FCM V1(据我所知,我们迟到了)。
但是,我们在使用从 azure 门户发送的测试时遇到了一些问题。
我们重新配置了通知中心 SDK 以创建 FCMV1 设备注册。 我们已从配置中删除了旧的 FCM/GCM API 密钥。 我们已经根据谷歌云的凭据配置了 FCMV1 凭据。
我们添加了私钥、project-id 和 client_email 作为我们在 Google 云控制台中创建的 json 文件的直接副本。
向设备发送测试消息时,我们收到以下错误: 在此输入图片描述
Firebase 消息传递 API 已启用。但是没有任何请求成功。
对于这个问题有什么经验吗?
我们期待测试发送成功。但是,我们遇到了无效凭证错误,而凭证是由谷歌云直接提供的。
在我们的例子中,文件 android/app/build/ generated/res/google-services/values/values.xml 包含另一个先前使用的project_id并被缓存,因此当使用该应用程序的令牌注册应用程序时, Firebase 向 azure 通知中心响应发件人 ID 不匹配错误,这反过来又显示身份验证错误。
至少要仔细检查一些事情。 我如何从 Firebase 得到实际错误:
using FirebaseAdmin;
using FirebaseAdmin.Messaging;
using Google.Apis.Auth.OAuth2;
CancellationTokenSource cts = new CancellationTokenSource();
var fapp = FirebaseApp.Create(new AppOptions()
{
Credential = await GoogleCredential.FromFileAsync("./your-credendials-file.json", cts.Token),
ProjectId = "zentnlboliden",
ServiceAccountId = "[email protected]"
});
var registrationToken = "token-from-client";
try
{
var result = await FirebaseMessaging.GetMessaging(fapp).SendAsync(
new Message()
{
Token = registrationToken,
Data = new Dictionary<string, string>()
{
{ "score", "850" },
{ "time", "2:45" },
}
}
);
}
catch(Exception e)
{
Console.WriteLine(e);
}