1

私たちはFirebase SDKと統合されたメインアプリを持っています。ユーザーは電子メール、GoogleまたはFacebookを使用してメインアプリケーション経由でサインインします。メインiOSアプリとそのシェアエクステンションとの間で同じ認証されたユーザートークンを使用する方法

ここでは、同一の認証セッションを理想的には内部的に共有する共有拡張が実装されているため、同じユーザでFirebase上でデータを送信することはできません。

メインアプリケーションと共有拡張の間でFirebase認証セッションを共有する方法を知っている人はいますか?

  1. 私たちは内部に認証の詳細があるため、Firebaseの処理を行うためにメインアプリに内部呼び出しを送信しました。

  2. メインアプリでは、共有の拡張機能が自動的に再認証するために使用するアプリグループを介して、一般ユーザーのデフォルトにいくつかのトークンを設定します。

  3. またはFirebase、

をそうするいくつかの方法を提供し、私は上から実行可能であるかわかりません。 私は方法signInWithCustomToken:completion:を見つけましたが、実際に探しているものとは関係ありません。

答えて

0

読み、次のようにあなたが必要とするNSUserDefaultsの同じセットから保存するには:あなたのメインアプリで

  1. 、プロジェクトナビゲータでプロジェクトを選択します。
  2. メインのアプリターゲットを選択し、[機能]タブを選択します。
  3. アプリケーショングループをオンにします(これは、エンタイトルメントのセットを生成するときに開発者ポータルと通信し、関連するアプリIDと同様に となります)。
  4. 新しいコンテナを作成します。ヘルプによると、それは を "グループ"で始める必要があるので、 "group.myapp.test"のような名前を付けてください。
  5. あなたのToday拡張ターゲットを選択し、 アプリグループを有効にするこのプロセスを繰り返します。新しいものを作成せず、この新しく作成した グループを選択して、Today拡張機能がグループのメンバーであることを示します。あなたのNSUserDefaultsへ

書き込み:NSUserDefaultsから

// In this example I´m setting FirstLaunch value to true 
NSUserDefaults(suiteName: "group.myapp.test")!.setBool(true, forKey: "FirstLaunch") 

読む:

// Getting the value from FirstLaunch 
let firstLaunch = NSUserDefaults(suiteName: "group.myapp.test")!.boolForKey("FirstLaunch") 

if !firstLaunch { 
    ... 
} 
+0

卿は、実際に私がメインのアプリ&拡張の間でデータを共有する方法を知っています。私の問題は、メインアプリケーションと拡張機能の間で同じ認証セッションを使用することです。 – Mrug

+0

認証トークンはありますか?そうでない場合は、ユーザーのデフォルトである "isUserAuthenticated"にプロパティを直接保存し、拡張で認証をスキップできます。 認証トークンがある場合は、ユーザーのデフォルトで保存し、拡張子と共有してトークンが有効かどうかを検証できます。 –

+0

これは解決策ではありません。私は実際にメインアプリケーションと拡張機能の間でFirebaseセッションを共有するための何らかの方法を探していました。親切に質問を行ってください。 – Mrug

関連する問題