iOS11アプリ起動中にPush通知が受け取れない

iOS10からUserNotificationが導入されて、RemoteNotificationと共存している時に、iOS11ではアプリがForegroundにいる時に通知が取得できない状態になっていた。


```
  func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) {
     // ここで処理を行う

  }
```

iOS10までは、UserNotificationも上記が呼ばれる

iOS11ではUNUserNotificationCenterDelegateを実装しないと呼ばれない

```
    @available(iOS 10.0, *)
    func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {

      // ここで処理を行う

      completionHandler([])

    }
```

アプリ起動時もUserNotificationを表示させたい場合はcompetionHandler([.badge, .alert, .sound])とすると、表示される。

そのをたっぷすると、上のdidReceiveRemoteNotificationあ呼ばれる

GAE DataStoreバックアップ&リストア方法

https://cloud.google.com/datastore/docs/console/datastore-backing-up-restoring?hl=ja

1. 書き込み制限

ドキュメントに書いてあるのは書き込みを向こうにする・・・

そうすると、全部のデータストアが書き込み向こうになるので、一旦この設定は見送り

書き込み制限をすると、全てのエンティティーでエラーとなる

2.バックアップ作成

バックアップしたいエンティティを選択してバックアップを作成

バックアップ名の入力があるので、基本そのまま保存する

保存先のGoogle Cloud Storageが登録されていない場合、エラーとなるので、
バックアップようのパケットを作成する

3.リストア

バックアップから選択してリストする

(バックアップから復元する場合、バックアップ後に登録したデータが削除されるわけではない)

DataStoreの辛いところ

# DataStoreの限界 FacebookやインスタグラムのようなSNSで、投稿、公開範囲、お気に入りなどの機能をDataStoreで実現しようとするとどうしても辛くなる。 ## DataStoreで実現可能? - users - id - feeds - i...