小编Jai*_*oya的帖子

使用 Firebase Cloud Messaging 从服务器端管理主题订阅的示例 GET 请求

我在https://developers.google.com/instance-id/reference/server#get_information_about_app_instances找到以下示例 GET 请求:

https://iid.googleapis.com/iid/info/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA?details=trueAuthorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
Run Code Online (Sandbox Code Playgroud)

该示例中的关键是:AIzaSyZ-1u...0GBYzPu7Udno5aA。我在哪里可以找到我应该在 GET 请求中使用的密钥?我试图在https://console.developers.google.com/apis/credentials找到它,这就是我看到的:

在此输入图像描述

我尝试使用上图中看到的所有四个键,但我总是从浏览器收到此消息:

{"error":"MissingAuthorization"}
Run Code Online (Sandbox Code Playgroud)

这个错误是指密钥错误还是其他原因?我是否在正确的地方寻找钥匙?谢谢。

编辑1:我正在查看如何检查已订阅了多少主题?,我还尝试使用在 Firebase 控制台的“Cloud Messaing”选项卡下找到的密钥。这是我所看到的:

在此输入图像描述

我也尝试使用上图中的这些键进行 GET 请求,但仍然看到相同的错误:{"error":"MissingAuthorization"}

编辑2:我从命令行使用它:

C:\curl>curl -k https://iid.googleapis.com/iid/info/nKctODamlM4:CKrh_PC8kIb7O...clJONHoA?details=trueAuthorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA
{"error":"MissingAuthorization"}
C:\curl>
Run Code Online (Sandbox Code Playgroud)

请注意,我如何简单地复制/粘贴在“示例 GET 请求”标题下的https://developers.google.com/instance-id/reference/server#get_information_about_app_instances中找到的内容。我什至没有尝试使用自己的密钥,但我看到了相同的错误:{"error":"MissingAuthorization"}。这是否意味着问题出在我使用的密钥上?这不是我在 Firebase 控制台中看到的吗?

android push-notification firebase firebase-cloud-messaging android-push-notification

2
推荐指数
1
解决办法
2865
查看次数

Java中将大写字母转换为小写字母并将小写字母转换为大写字母的最快方法

这是关于性能的问题。我可以使用以下代码将大写转换为小写,反之亦然:

从小写到大写:

// Uppercase letters. 
class UpperCase {  
  public static void main(String args[]) { 
    char ch;
    for(int i=0; i < 10; i++) { 
      ch = (char) ('a' + i);
      System.out.print(ch); 

      // This statement turns off the 6th bit.   
      ch = (char) ((int) ch & 65503); // ch is now uppercase
      System.out.print(ch + " ");  
    } 
  } 
}
Run Code Online (Sandbox Code Playgroud)

从大写到小写:

// Lowercase letters. 
class LowerCase {  
  public static void main(String args[]) { 
    char ch;
    for(int i=0; i < 10; i++) { 
      ch …
Run Code Online (Sandbox Code Playgroud)

java performance ascii lowercase uppercase

2
推荐指数
3
解决办法
1328
查看次数

带有 DMARC 的电子邮件:“失败”,即使它从 https://mxtoolbox.com 验证器通过

我在下面使用 username@example.net 来保护隐私,但这发生在真实的域和电子邮件地址上。

在我们发送的大量电子邮件中,DMARC 失败了:

在此处输入图片说明

在我的 TXT 记录中,这是我对 DMARC 所拥有的:

_dmarc 14400 IN TXT "v=DMARC1; p=none; rua=mailto:username@example.net; sp=none; aspf=r"

当我去https://mxtoolbox.com验证我的 DMARC 记录时,这就是我得到的:

在此处输入图片说明

为什么 DMARC 会失败,即使验证器说它通过了,没有语法错误并且一切正常?请注意 SPF 和 DKIM 如何通过。出于某种我试图理解的原因,问题仅在于 DMARC。

更新 1:我在https://support.google.com/a/answer/2466563?hl=en 上找到了这一段:

对齐模式是指将发件人记录与 SPF 和 DKIM 签名进行比较的精度,这两个可能的值是宽松的或严格的。分别用“r”和“s”表示。简而言之,relaxed 允许部分匹配,例如给定域的子域,而 strict 需要完全匹配。

请注意我_dmarc 14400 IN TXT "v=DMARC1; p=none; rua=mailto:username@example.net; sp=none; aspf=r"如何尝试使用轻松模式。

spf dkim dmarc

2
推荐指数
1
解决办法
5794
查看次数

如何从Firebase控制台向特定GCM / FCM设备令牌ID发送推送通知

在Urban Airship中,当我编写通知时,可以通过搜索Urban Airship channel_id(设备ID)来定位特定用户:

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

我从Urban Airship发送了上面显示的推送通知,并成功收到。现在,我想做同样的事情,将推送通知发送到特定设备,但是现在使用Firebase控制台。问题是在Firebase中,在我需要指定的步骤中target,它只允许我选择User segmenttopic。我期望看到第三个选项:(Target specific users用于向一个或多个特定GCM / FCM设备令牌ID发送通知。因此,我的替代方法是将GCM / FCM设备令牌ID添加到topic然后将推送通知发送到该主题,这是我之前成功完成的。尽管如此,这将是一种解决方法,而不是我更喜欢这样做的方式。是否可以从Firebase控制台向特定用户发送推送通知(通过定义目标GCM / FCM设备令牌ID)?谢谢。

更新1:了解Firebase控制台(https://console.firebase.google.com/)仅如何显示User segment并显示TopicTarget

在此处输入图片说明

firebase google-cloud-messaging firebase-cloud-messaging firebase-console

2
推荐指数
2
解决办法
1773
查看次数

如何检查我的 macOS 上是否安装了 adb?

这是我尝试过的:

Jaimes-MacBook-Pro:platform-tools jaimemontoya$ pwd
/Users/jaimemontoya/Library/Android/sdk/platform-tools
Jaimes-MacBook-Pro:platform-tools jaimemontoya$ ls
NOTICE.txt                      deployagent.jar                 etc1tool                        make_f2fs                       sload_f2fs
adb                             deploypatchgenerator.jar        fastboot                        mke2fs                          source.properties
api                             dmtracedump                     hprof-conv                      mke2fs.conf                     sqlite3
deployagent                     e2fsdroid                       lib64                           package.xml                     systrace
Jaimes-MacBook-Pro:platform-tools jaimemontoya$ adb shell setprop log.tag.FA VERBOSE
bash: adb: command not found
Jaimes-MacBook-Pro:platform-tools jaimemontoya$
Run Code Online (Sandbox Code Playgroud)

我知道我明白了bash: adb: command not found,但我不确定我是否使用了正确的路径(/Users/jaimemontoya/Library/Android/sdk/platform-tools)。请注意,当我使用时,ls我会看到adb列出的信息。那不是一个目录。它是一个文件,因为当我使用时,ls -al我在权限中看到了这个:-rwxr-xr-x。这意味着adb是一个文件,而不是一个文件夹。否则,应该是drwxr-xr-x,但我看到的是-rwxr-xr-x。有什么提示可以帮助我确认我是否已adb在 macOS 上安装,以及如何从命令行调用它?

更新1:

按照 Ashok Chaudhari 在评论中的建议,我从 Android Studio 转到“工具”>“SDK 管理器”>“外观和行为”>“系统设置”>“Android SDK”,然后我看到 …

macos terminal android adb

2
推荐指数
1
解决办法
8895
查看次数

为什么我在Git上创建的分支没有出现?

这就是我在做的事情:

C:\Users\username\Dropbox\myproject\androidapp\build>git branch -D master
Run Code Online (Sandbox Code Playgroud)

错误:找不到分支'master'.

C:\Users\username\Dropbox\myproject\androidapp\build>git checkout -b master
Switched to a new branch 'master'

C:\Users\username\Dropbox\myproject\androidapp\build>git branch

C:\Users\username\Dropbox\myproject\androidapp\build>git branch -a

C:\Users\username\Dropbox\myproject\androidapp\build>
Run Code Online (Sandbox Code Playgroud)

我看到了这样的信息:切换到一个新的分支'master'.为什么新分支'master'不存在,显然我能够切换到分支'master'?

git

1
推荐指数
1
解决办法
115
查看次数

使用 cURL https://fcm.googleapis.com/fcm/send 时,Firebase 推送通知不会播放声音

当我使用 Firebase 控制台时,通过激活“高级选项”下的“声音”,一切都很完美,正如最佳答案 Mouad Abdelghafour AitAli 在Firebase Push notification is not Playing sound while app is in back 的接受答案中所解释的那样。当我使用 cURL 向端点发出请求时https://fcm.googleapis.com/fcm/send,我收到通知,唯一的问题是通知不播放声音。这就是我从命令提示符发送通知的方式:

C:\curl>curl -k -X POST --header "Authorization: key=<My authorization key>" --header "Content-Type: application/json" https://fcm.googleapis.com/fcm/send -d "{\"to\":\"<Token of device that receives the notification>\",\"notification\":{\"body\":\"Yellow\"},\"priority\":10,\"sound\":\"default\"}"
{"multicast_id":4910170660116070247,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1512975815064180%efad4c69efad4c69"}]}
Run Code Online (Sandbox Code Playgroud)

请注意我如何使用\"sound\":\"default\",但通知仍然没有播放声音。正如我提到的,它可以在 Firebase 控制台上运行,所以我试图理解为什么它不能从命令行使用 cURL 运行。谢谢。

android curl firebase firebase-cloud-messaging android-push-notification

1
推荐指数
1
解决办法
2328
查看次数