Google is committed to advancing racial equity for Black communities. See how.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Управление установками Firebase

Служба установки Firebase (FIS) предоставляет идентификатор установки Firebase (FID) для каждого установленного экземпляра приложения Firebase. Идентификатор установки Firebase используется внутренними службами Firebase, такими как обмен сообщениями в приложении или удаленная конфигурация, не требуя от разработчиков непосредственного взаимодействия с FIS API. Однако бывают случаи, когда разработчики приложений могут захотеть напрямую вызвать FIS API, например:

  • Чтобы удалить установку Firebase и данные, связанные с ней.
  • Чтобы получить идентификаторы (идентификаторы установки Firebase), чтобы настроить таргетинг на определенные установки приложения.
  • Чтобы получить токены аутентификации для аутентификации установок Firebase.

Чтобы начать работу с прямым вызовом FIS API, добавьте SDK в свое приложение.

Добавьте в приложение SDK установки Firebase.

iOS

  1. Добавьте зависимость для установок Firebase в свой Podfile:
    pod 'Firebase/Installations'
  2. Запустите pod install и откройте созданный файл .xcworkspace .
  3. Импортируйте модуль Firebase в свой UIApplicationDelegate :

    Swift

    import Firebase

    Цель-C

    @import Firebase;
  4. Настройте общий экземпляр FirebaseApp , как правило, в методе application:didFinishLaunchingWithOptions: вашего приложения:

    Swift

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Цель-C

    // Use Firebase library to configure APIs
    [FIRApp configure];

Android

Добавьте зависимость для Android SDK установки Firebase в файл Gradle модуля (уровня приложения) (обычно app/build.gradle ):

implementation 'com.google.firebase:firebase-installations:16.3.4'

JavaScript

В зависимости от того, как размещено ваше веб-приложение, ваша конфигурация может обрабатываться автоматически или вам может потребоваться обновить объект конфигурации Firebase .

Например, если ваши зависимости добавлены в index.html, добавьте зависимость в элемент <head>:

<script src="/__/firebase/8.1.1/firebase-installations.js"></script>

Удалить установку Firebase

Данные, связанные с установкой Firebase, обычно не идентифицируют личность. Тем не менее, может быть полезно дать пользователям возможность управлять этими данными и удалять их.

Идентификаторы установки Firebase различны для каждой установки каждого приложения; разные приложения на одном устройстве имеют разные идентификаторы установки Firebase. Идентификаторы установки Firebase идентифицируют установки приложений и данные, связанные с этими установками.

Когда вы удаляете идентификатор установки, данные, связанные с этим идентификатором установки, удаляются из действующих и резервных систем всех служб Firebase, которые используют идентификаторы установки Firebase для идентификации установок в течение 180 дней. Этот процесс подробно описан в заявлении Google об удалении и хранении .

Если вы не отключите в своем приложении все службы, генерирующие FID, FIS создаст новый идентификатор в течение нескольких дней. Firebase рассматривает вновь созданный идентификатор как новую установку Firebase и никоим образом не связывает его с предыдущим идентификатором или данными.

Удалить FID с помощью вызова клиентского API

Чтобы удалить FID, сгенерированные службами Firebase, вызовите соответствующий метод из SDK установки Firebase:

Swift

func delete(completion: @escaping (Error?) -> Void)

Цель-C

- (void)deleteWithCompletion:(nonnull void (^)(NSError *_Nullable))completion;

Ява

FirebaseInstallations.getInstance().delete()
        .addOnCompleteListener(new OnCompleteListener<Void>() {
    @Override
    public void onComplete(@NonNull Task<Void> task) {
        if (task.isSuccessful()) {
            Log.d("Installations", "Installation deleted");
        } else {
            Log.e("Installations", "Unable to delete Installation");
        }
    }
});

Котлин + KTX

FirebaseInstallations.getInstance().delete().addOnCompleteListener { task ->
    if (task.isComplete) {
        Log.d("Installations", "Installation deleted")
    }  else {
        Log.e("Installations", "Unable to delete Installation")
    }
}

JavaScript

await firebase.installations().delete();

Удалить FID с помощью вызова API сервера

Чтобы удалить FID с помощью вызова API сервера, добавьте на свой сервер Firebase Admin SDK , если вы еще этого не сделали.

После добавления SDK удалите FID с помощью вызова функции удаления на выбранном вами языке (примечание: хотя эти методы отражают именование идентификаторов экземпляров, они фактически удаляют FID при вызове с любым текущим SDK Firebase).

Node.js

// An FID sent from a client service SDK
const idToDelete = 'eyJhbGciOiJFUzI1N_iIs5';

admin.instanceId().deleteInstanceId(idToDelete);

Ява

// An FID sent from a client service SDK
String idToDelete = "eyJhbGciOiJFUzI1N_iIs5";

FirebaseInstanceId.getInstance().deleteInstanceIdAsync(idToDelete).get();

Python

  from firebase_admin import instance_id

  # An FID sent from a client service SDK
  id_to_delete = 'eyJhbGciOiJFUzI1N_iIs5'

  instance_id.delete_instance_id(id_to_delete)

Идти

client, err := app.InstanceId(ctx)
if err != nil {
  log.Fatalln("error initializing client", err)
}

iidToDelete := "eyJhbGciOiJFUzI1N_iIs5"
if err := client.DeleteInstanceId(ctx, iidToDelete); err != nil {
  log.Fatalln("error deleting FID", err)
}

Когда вы удаляете идентификатор установки Firebase с помощью вызова API сервера, службы Firebase запускают процесс удаления данных, связанных с этим идентификатором установки, прекращают принимать новые данные для этого идентификатора в течение 1-2 дней, а затем уведомляют клиентское приложение. что идентификатор был удален. Пока Firebase не уведомит клиентское приложение, некоторые службы приложения могут по-прежнему нацеливаться на идентификатор - например, установка Firebase может продолжать получать уведомления FCM в течение нескольких часов.

Если вы хотите удалить текущий идентификатор установки Firebase и немедленно использовать службы Firebase с новым, несвязанным идентификатором, используйте клиентский API для обработки удаления.

Получить идентификаторы клиентов

Если у вас есть требование идентифицировать определенные установки вашего приложения, вы можете сделать это, получив идентификатор установки Firebase. Например, чтобы выполнить тестирование во время разработки Firebase In-App Messaging, вы можете определить и настроить таргетинг на правильное тестовое устройство, используя его установочный идентификатор Firebase.

Чтобы получить идентификатор установки Firebase:

Swift

Installations.installations().installationID { (id, error) in
  if let error = error {
    print("Error fetching id: \(error)")
    return
  }
  guard let id = id else { return }
  print("Installation ID: \(id)")
}

Цель-C

[[FIRInstallations installations] installationIDWithCompletion:^(NSString *identifier, NSError *error) {
  if (error != nil) {
    NSLog(@"Error fetching Installation ID %@", error);
    return;
  }
  NSLog(@"Installation ID: %@", identifier);
}];

Ява

FirebaseInstallations.getInstance().getId()
        .addOnCompleteListener(new OnCompleteListener<String>() {
    @Override
    public void onComplete(@NonNull Task<String> task) {
        if (task.isSuccessful()) {
            Log.d("Installations", "Installation ID: " + task.getResult());
        } else {
            Log.e("Installations", "Unable to get Installation ID");
        }
    }
});

Котлин + KTX

FirebaseInstallations.getInstance().id.addOnCompleteListener { task ->
    if (task.isSuccessful) {
        Log.d("Installations", "Installation ID: " + task.result)
    } else {
        Log.e("Installations", "Unable to get Installation ID")
    }
}

JavaScript

const installationId = await firebase.installations().getId();
console.log(installationId);

Получить токены аутентификации FIS

Сервисы Firebase могут аутентифицировать установки Firebase с помощью токенов аутентификации, полученных из FIS. Например, при разработке A / B-тестов для Remote Config вы можете аутентифицировать целевое тестовое устройство с помощью токена аутентификации FIS.

Токены аутентификации FIS - это недолговечные токены-носители в формате веб-токена JSON (JWT), содержащие следующую информацию для установки:

  • Идентификатор установки Firebase
  • Связанный проект ( projectNumber )
  • Связанный идентификатор приложения Firebase ( appId )
  • Срок действия токена

Жетоны аутентификации FIS не могут быть отозваны и остаются действительными до истечения срока их действия. Срок службы токена по умолчанию - одна неделя.

Чтобы получить токен аутентификации FIS:

Swift

Installations.installations().authTokenForcingRefresh(true, completion: { (token, error) in
  if let error = error {
    print("Error fetching token: \(error)")
    return
  }
  guard let token = token else { return }
  print("Installation auth token: \(token)")
})

Цель-C

[[FIRInstallations installations] authTokenForcingRefresh:true
                                               completion:^(FIRInstallationsAuthTokenResult *result, NSError *error) {
  if (error != nil) {
    NSLog(@"Error fetching Installation token %@", error);
    return;
  }
  NSLog(@"Installation auth token: %@", [result authToken]);
}];

Ява

FirebaseInstallations.getInstance().getToken(/* forceRefresh */true)
        .addOnCompleteListener(new OnCompleteListener<InstallationTokenResult>() {
    @Override
    public void onComplete(@NonNull Task<InstallationTokenResult> task) {
        if (task.isSuccessful() && task.getResult() != null) {
            Log.d("Installations", "Installation auth token: " + task.getResult().getToken());
        } else {
            Log.e("Installations", "Unable to get Installation auth token");
        }
    }
});

Котлин + KTX

FirebaseInstallations.getInstance().getToken(/* forceRefresh */ true)
    .addOnCompleteListener { task ->
        if (task.isSuccessful) {
            Log.d("Installations", "Installation auth token: " + task.result?.token)
        } else {
            Log.e("Installations", "Unable to get Installation auth token")
        }
    }

JavaScript

const installationToken = await firebase.installations()
    .getToken(/* forceRefresh */ true);
console.log(installationToken);

Установки Firebase и идентификатор экземпляра

Для удаления данных, а также для внутреннего использования FIS обратно совместим с устаревшим идентификатором Firebase Instance ID. Удаление IID - это альтернативный метод запроса удаления данных с помощью этих SDK Firebase:

  • iOS 6.14.0 и ниже
  • SDK для Android до 27 февраля 2020 г.

Если вы хотите запросить удаление установки с более свежими SDK для iOS и Android, рекомендуется, но не обязательно, обновить код для использования FIS.

Если ваше приложение в настоящее время использует SDK идентификатора экземпляра через косвенную зависимость для получения идентификаторов, вы можете либо обновить свой код, чтобы вместо этого использовать установки Firebase, либо, в качестве альтернативы, вы можете обновить свое приложение, чтобы добавить прямую зависимость от SDK идентификатора экземпляра.