小编And*_*rs8的帖子

如何通过CURL向所有设备发送Firebase通知?

我正在尝试向所有应用用户(在Android上)发送通知,基本上会复制通过Firebase管理控制台发送通知时发生的情况.这是我开始的CURL命令:

curl --insecure --header"授权:key = AIzaSyBidmyauthkeyisfineL-6NcJxj-1JUvEM"--header"Content-Type:application/json"-d"{\"notification \":{\"title \":\"note -Title \",\"body \":\"note-Body \"}}" https://fcm.googleapis.com/fcm/send

这是JSON解析出来更方便你的眼睛:

{
"notification":{
    "title":"note-Title",
    "body":"note-Body"
    }
}
Run Code Online (Sandbox Code Playgroud)

回复的响应只有两个字符:

就是这样,"to"这个词.(Headers报告400)我怀疑这与我的JSON中没有"to"有关.人们甚至会为"去"做什么?我没有定义主题,设备没有注册任何东西.但是,他们仍然可以从Firebase管理面板接收通知.

由于Firebase通知处理的惊人限制,我想尝试"仅数据"JSON包,如果您的应用程序在前台,通知将由您的处理程序处理,但如果您的应用程序在后台,则会获得由Firebase服务内部处理,并且从未传递给您的通知处理程序.显然,如果您通过API提交通知请求,则可以解决此问题,但仅限于仅使用数据进行通知请求.(这会破坏使用相同消息处理iOS和Android的能力.)在我的任何JSON中用"data"替换"notification"都没有效果.

好的,然后我在这里尝试了解决方案:Firebase Java Server向所有设备发送推送通知, 在我看来说"好吧,即使通过管理控制台向所有人发送通知......也不可能通过API. " 解决方法是让每个客户端订阅一个主题,然后将通知推送到该主题.首先是onCreate中的代码:

FirebaseMessaging.getInstance().subscribeToTopic("allDevices");
Run Code Online (Sandbox Code Playgroud)

那么我发送的新JSON:

{
"notification":{
    "title":"note-Title",
    "body":"note-Body"
    },
"to":"allDevices"
}
Run Code Online (Sandbox Code Playgroud)

所以现在我至少得到了服务器的真实回复.JSON响应:

{
"multicast_id":463numbersnumbers42000,
"success":0,
"failure":1,
"canonical_ids":0,
"results":
    [
    {
    "error":"InvalidRegistration"
    }
    ]
}
Run Code Online (Sandbox Code Playgroud)

这附带一个HTTP代码200.好的......根据https://firebase.google.com/docs/cloud-messaging/http-server-ref,带有"InvalidRegistration"的200代码表示注册令牌存在问题.也许?因为文档的这一部分是针对消息传递服务器的.通知服务器是否相同?不清楚.我在其他地方看到这个主题可能需要几个小时才能激活.这似乎会使创建新的聊天室变得毫无用处,所以这似乎也是如此.

当我从头开始编写应用程序时,我很兴奋,因为我以前从未使用过Firebase,只需几个小时即可收到通知.在达到Stripe.com文档的水平之前,它似乎还有很长的路要走.

一句话:有没有人知道提供什么JSON来向运行应用程序的所有设备发送消息以镜像管理控制台功能?

android firebase firebase-cloud-messaging firebase-notifications

61
推荐指数
3
解决办法
8万
查看次数

Firebase Analytics是否支持地理深入挖掘?

我创建了一个Firebase帐户并将其集成到应用中.在Firebase控制台中,我可以看到世界地图,是的,应用程序在美国运行(我在哪里).

似乎没有比"国家"更精细的地理粒度.Google Analytics中的类似功能可让您点击某个国家/地区,然后查看该数据到城市级别.我是否遗漏了某些内容,或者国家级使用情况是Firebase Analytics提供的最佳粒度?

如果它可以做得更好,怎么样?

google-analytics firebase firebase-analytics

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

如何阻止材料下拉自动完成选择触发 Angular 8/9 中的另一个搜索查询?

摘要:我有一个可以正常使用的字段下拉搜索。当我从下拉列表中选择时,它很高兴地将字段设置为我在搜索中收到的对象,但不幸地注册了该更改并将整个对象发送出去以供搜索。

HTML:

<form [formGroup]="myForm" novalidate>
  <mat-form-field>
    <input matInput 
    placeholder="SKU / Item Number" 
    [matAutocomplete]="auto" 
    formControlName='itemName'>
  </mat-form-field> 
  <mat-autocomplete #auto="matAutocomplete" [displayWith]="parseDropDownSelection">
      <mat-option 
            *ngFor="let row of searchQueryResult" 
            [value]="row" 
            (onSelectionChange)="onItemSelection($event)">
        <span>{{ row.Name }}</span>
      </mat-option>
  </mat-autocomplete>   
</form>
Run Code Online (Sandbox Code Playgroud)

设置:

import {FieldSearchServiceItem}     from './../services/field-search.service';

constructor(
    private dialog: MatDialog,
    private formBuilder: FormBuilder,
    private http: HttpClient,
    private appServiceItem: FieldSearchServiceItem,    
    )   {}
Run Code Online (Sandbox Code Playgroud)

ngOnInit()

ngOnInit(){
    this.myForm = this.formBuilder.group
        ({
        itemName: '',
        });

this.myForm
  .get('itemName')
  .valueChanges
  .pipe(
    debounceTime(200),
    switchMap(value => this.appServiceItem.search({name: value}, 1))
    )
  .subscribe(serviceResult => this.searchQueryResult = serviceResult.qResult);
}
Run Code Online (Sandbox Code Playgroud)

服务:

@Injectable()
export …
Run Code Online (Sandbox Code Playgroud)

angular-material angular

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

如何以编程方式为Drupal 8中的模块设置缓存期限?

Drupal 8:

我有一个块的代码成功地完成它的工作并返回它.该块称为"RacerProfile",它将其所有内容转储到变量"$ pageContent"中.在最后它返回#markup.好.现在我怎么告诉这个每六个小时失效一次?

/**
 * Provides a 'Racer Profile' Block
 *
 * @Block(
 *   id = "racer_profile",
 *   admin_label = @Translation("Slider v1 block")
 * )
 */
class RacerProfile extends BlockBase {
  /**
   * {@inheritdoc}
   */
  public function build() 
    {
    // does all the work to make $pageContent via non-drupal 
    // database queries. However, for this example, let's just
    // just imagine it gets the time of day. Then, let's set
    // let's set the cache age to 5 seconds …
Run Code Online (Sandbox Code Playgroud)

caching drupal-8

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

如何检测创建活动时已存在的屏幕触摸?

我有一个应用程序,在所有条件下在户外使用.这些是运行Android 2.1的B&N Nook平板电脑.它们具有光学触摸检测功能,而不是压力,因此屏幕上的大雨滴可以"禁用"设备,因为它被检测为按下,然后未检测到所有其他按下.

第一部分:在使用的活动中,我手动检测长(10秒)屏幕按压,与雨滴开始阻塞按压一致.我为此使用了dispatchTouchEvent(),没关系.

第二部分:那么我打开一个新的活动,然后绕着降雨圈告诉用户"擦掉这个雨滴".新活动打开正常,我可以成功地在任何地方画圈子.

麻烦的是,新活动没有收到第一次按下的任何触摸事件......尚未停止的长按.没有得到"新的"ACTION_DOWN是可以理解的......我已经抓住了.如果我抬起手指,也没有ACTION_UP.提起最初的新闻,每天工作得很好:我可以点击屏幕,瞬间一个圆圈围绕当场绘制,如果我拖我的手指会动,所以没有问题.

我怎么得到最初的新闻,那个带我来的人,仍然存在?它必须是某种轮询API,而不是事件,因为我真的想要当前的状态,我知道事件已经被吸了.要清楚的是,在我第一次将手指从屏幕上移开之前,没有任何事件来自dispatchTouchEvent()(即使关闭也不会产生可检测的事件).

(我可以从之前的活动中获取坐标并通过它......但是在10秒的等待期间,雨滴可能会滑落.我宁愿在完成工作时自行完成活动.)

android

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

如何在不使用索引或 .length 的情况下计算 Angular 9 ngFor 的迭代次数?

我有一个有条件检查的 Angular 循环。因此,在数组上使用 .length 或使用 i from index 的通常答案不会告诉我有多少项目正在显示

<form [formGroup]="paymentsForm">
<div formArrayName="arrVoucherLines">  
    <div *ngFor="let line of paymentsForm.get('arrVoucherLines')['controls']; index as i"
     [formGroupName]="i">

     <div *ngIf="dateCheckingConditionalFunctionPlaceholder()">

         <mat-checkbox formControlName='FlagPayInvoice'></mat-checkbox>
         Issued: {{line.value.DateTimeLocalInvoiceIssued |date:'MM/dd'}}
         Due: {{line.value.DateTimeLocalInvoiceDue |date:'MM/dd'}}
        ... variety of other voucer info
    </div>
    </div>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)

显示项目总数很容易,但我还希望能够显示显示了多少以及跳过了多少。如果我可以在循环中有一个“变量++”,那就很容易了。

期望的结果是得到一些我可以做到的:

Total invoices {{blah.length}}
Invoices Shown {{count}}
Invoices not yet due: {{blah.length-count}}
Run Code Online (Sandbox Code Playgroud)

用例是用户在表单上选择截止日期,并且只显示该日期之前到期的账单。

angular angular9

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

按钮边距更改与按钮文本内容

让我们从有趣的部分开始,这是麻烦的图形.水平,一切都很美.

沉没按钮 中间按钮,我想与其他三个对齐.以下是基础知识:

  1. 总的来说,这是一个相对的布局
  2. 在这个relativelayout里面,它是一个水平线性布局,包含三个按钮
  3. 中间按钮的"下沉"与它是双线文本100%相关,如果我将它改为单行,它会正确对齐
  4. 按钮的指定高度与下沉无关,即使是当前大小的两倍以上(从当前的70到170),也会显示完全相同的行为(和行为大小)
  5. "custom_button"背景无效,如果我将它们全部更改为无背景,库存查看按钮,则会发生相同的定位

这里是XML(只是relativelayout中的linearlayout):

<LinearLayout 
android:id="@+id/wideButtons"
android:layout_below="@+id/buttonClockFinish"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:orientation="horizontal">

    <Button
    android:id="@+id/buttonLog"
    android:layout_weight="1"
    android:layout_height="70dp"
    android:padding="0dp"
    android:layout_marginRight="3dp"
    android:layout_width="fill_parent"
    android:background="@drawable/custom_button"
    android:text="View Log" />

    <Button
    android:id="@+id/buttonLocation"
    android:layout_weight="1"
    android:layout_height="70dp"
    android:padding="0dp"
    android:layout_marginLeft="3dp"
    android:layout_marginRight="3dp"
    android:layout_width="fill_parent"
    android:background="@drawable/custom_button"
    android:text="Location\nD1-RS" />

    <Button
    android:id="@+id/buttonHelp"
    android:layout_weight="1"
    android:layout_height="70dp"
    android:padding="0dp"
    android:layout_marginLeft="3dp"
    android:layout_width="fill_parent"
    android:background="@drawable/custom_button"
    android:text="Help" />

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

那么为什么它不对齐呢?

xml layout android button

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

如何在不使用 gulp 工具的情况下在 Angular 中使用 pdfmake 自定义字体?

安装自定义字体文件的标准方法是通过 gulp 工具,如下所述:https : //pdfmake.github.io/docs/fonts/custom-fonts-client-side/

但是如果这对你来说失败了,对我来说在 Windows 上它似乎是一个兔子洞,肯定有另一种方法来获取数据。是的。

方案一是修改node_modules/pdfmake/build目录下的vsf_fonts.jspdfmake.js。在第一个中,您将添加数据,在第二个中,您将修改 defaultClientFonts 对象。我承认我说得有点含糊,因为问题是,如果您运行“npm 更新”或类似的操作,您将清除所有这些更改,下面的选项 2 更好,因为它保留了所有股票代码单独,最终它更简单。无需冗长,准确地描述了一个方法可以工作,那我,大概所有的人,建议不要。

我的应用程序是 Angular 8 设置,生成检查 PDF 客户端。所以我需要一个 MICR 字体。(编辑添加:当我升级到 Angular 9、Angular 10 和 Angular 11 时仍然有效。)

我想出的“如何使用自定义字体”的解决方案如下。

javascript pdfmake angular

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