Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Envie uma mensagem de teste para um aplicativo da Apple em segundo plano

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Para começar a usar o FCM, crie o caso de uso mais simples: enviar uma mensagem de notificação de teste do compositor de notificações para um dispositivo de desenvolvimento quando o aplicativo estiver em segundo plano no dispositivo. Esta página lista todas as etapas para fazer isso, desde a configuração até a verificação — ela pode abranger as etapas que você já concluiu se tiver configurado um aplicativo cliente Apple para FCM.

Adicione o Firebase ao seu projeto Apple

Esta seção aborda as tarefas que você pode ter concluído se já tiver ativado outros recursos do Firebase para seu aplicativo. Para FCM especificamente, você precisará carregar sua chave de autenticação de APNs e registrar-se para notificações remotas .

Pré-requisitos

  • Instale o seguinte:

    • Xcode 13.3.1 ou posterior
  • Certifique-se de que seu projeto atenda a estes requisitos:

    • Seu projeto deve ser direcionado a estas versões de plataforma ou posteriores:
      • iOS 11
      • macOS 10.13
      • tvOS 12
      • watchOS 6
  • Configure um dispositivo Apple físico para executar seu aplicativo e conclua estas tarefas:

    • Obtenha uma chave de autenticação de notificação por push da Apple para sua conta de desenvolvedor da Apple .
    • Ative as notificações por push no XCode em App > Capabilities .

Se você ainda não tem um projeto Xcode e deseja apenas experimentar um produto Firebase, pode fazer o download de um de nossos exemplos de início rápido .

Criar um projeto do Firebase

Antes de adicionar o Firebase ao seu aplicativo Apple, você precisa criar um projeto do Firebase para se conectar ao seu aplicativo. Acesse Entenda os projetos do Firebase para saber mais sobre os projetos do Firebase.

Registre seu aplicativo com o Firebase

Para usar o Firebase em seu aplicativo Apple, você precisa registrar seu aplicativo com seu projeto Firebase. Registrar seu aplicativo geralmente é chamado de "adicionar" seu aplicativo ao seu projeto.

  1. Acesse o console do Firebase .

  2. No centro da página de visão geral do projeto, clique no ícone iOS+ para iniciar o fluxo de trabalho de configuração.

    Se você já adicionou um aplicativo ao seu projeto Firebase, clique em Adicionar aplicativo para exibir as opções da plataforma.

  3. Digite o ID do pacote do seu aplicativo no campo ID do pacote .

  4. (Opcional) Insira outras informações do aplicativo: Apelido do aplicativo e ID da App Store .

  5. Clique em Registrar aplicativo .

Adicionar um arquivo de configuração do Firebase

  1. Clique em Baixar GoogleService-Info.plist para obter o arquivo de configuração das plataformas Firebase Apple ( GoogleService-Info.plist ).

  2. Mova seu arquivo de configuração para a raiz do seu projeto Xcode. Se solicitado, selecione para adicionar o arquivo de configuração a todos os destinos.

Se você tiver vários IDs de pacote em seu projeto, deverá associar cada ID de pacote a um aplicativo registrado no Firebase console para que cada aplicativo possa ter seu próprio arquivo GoogleService-Info.plist .

Adicionar SDKs do Firebase ao seu aplicativo

Use o Swift Package Manager para instalar e gerenciar dependências do Firebase.

  1. No Xcode, com seu projeto de aplicativo aberto, navegue até File > Add Packages .
  2. Quando solicitado, adicione o repositório Firebase Apple Platform SDK:
  3.   https://github.com/firebase/firebase-ios-sdk
  4. Escolha a biblioteca Firebase Cloud Messaging.
  5. Para uma experiência ideal com o Firebase Cloud Messaging, recomendamos habilitar o Google Analytics em seu projeto Firebase e adicionar o SDK do Firebase para Google Analytics ao seu aplicativo. Você pode selecionar a biblioteca sem coleta de IDFA ou com coleta de IDFA.
  6. Quando terminar, o Xcode começará automaticamente a resolver e baixar suas dependências em segundo plano.

Carregue sua chave de autenticação de APNs

Carregue sua chave de autenticação de APNs para o Firebase. Se você ainda não tiver uma chave de autenticação de APNs, certifique-se de criar uma no Apple Developer Member Center .

  1. Dentro do seu projeto no Firebase console, selecione o ícone de engrenagem, selecione Project Settings e, em seguida, selecione a guia Cloud Messaging .

  2. Em Chave de autenticação de APNs em Configuração do aplicativo iOS , clique no botão Carregar .

  3. Navegue até o local onde você salvou sua chave, selecione-a e clique em Abrir . Adicione o ID da chave (disponível no Apple Developer Member Center ) e clique em Upload .

Inicialize o Firebase em seu aplicativo

Você precisará adicionar o código de inicialização do Firebase ao seu aplicativo. Importe o módulo Firebase e configure uma instância compartilhada conforme mostrado:

  1. Importe o módulo FirebaseCore em seu UIApplicationDelegate , bem como quaisquer outros módulos Firebase usados ​​pelo delegado do aplicativo. Por exemplo, para usar Cloud Firestore e autenticação:

    SwiftUI

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Rápido

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objective-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. Configure uma instância compartilhada do FirebaseApp no ​​método application(_:didFinishLaunchingWithOptions:) do delegado do seu aplicativo:

    SwiftUI

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

    Rápido

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

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. Se você estiver usando SwiftUI, deverá criar um delegado de aplicativo e anexá-lo à sua estrutura de App por meio de UIApplicationDelegateAdaptor ou NSApplicationDelegateAdaptor . Você também deve desativar o swizzling de delegado de aplicativo. Para obter mais informações, consulte as instruções do SwiftUI .

    SwiftUI

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          

Registre-se para notificações remotas

Na inicialização ou no ponto desejado no fluxo do aplicativo, registre seu aplicativo para notificações remotas. Chame registerForRemoteNotifications como mostrado:

Rápido


UNUserNotificationCenter.current().delegate = self

let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(
  options: authOptions,
  completionHandler: { _, _ in }
)

application.registerForRemoteNotifications()

Objective-C


[UNUserNotificationCenter currentNotificationCenter].delegate = self;
UNAuthorizationOptions authOptions = UNAuthorizationOptionAlert |
    UNAuthorizationOptionSound | UNAuthorizationOptionBadge;
[[UNUserNotificationCenter currentNotificationCenter]
    requestAuthorizationWithOptions:authOptions
    completionHandler:^(BOOL granted, NSError * _Nullable error) {
      // ...
    }];

[application registerForRemoteNotifications];

Acesse o token de registro

Para enviar uma mensagem para um dispositivo específico, você precisa conhecer o token de registro desse dispositivo. Como você precisará inserir o token em um campo no compositor de Notificações para concluir este tutorial, certifique-se de copiar o token ou armazená-lo com segurança após recuperá-lo.

Por padrão, o FCM SDK gera um token de registro para a instância do aplicativo cliente na inicialização do aplicativo. Semelhante ao token de dispositivo APNs, esse token permite que você envie notificações direcionadas para qualquer instância específica do seu aplicativo.

Da mesma forma que as plataformas Apple normalmente fornecem um token de dispositivo APNs na inicialização do aplicativo, o FCM fornece um token de registro por meio do método messaging:didReceiveRegistrationToken: FIRMessagingDelegate O FCM SDK recupera um token novo ou existente durante a inicialização inicial do aplicativo e sempre que o token é atualizado ou invalidado. Em todos os casos, o SDK do FCM chama messaging:didReceiveRegistrationToken: com um token válido.

O token de registro pode mudar quando:

  • O aplicativo é restaurado em um novo dispositivo
  • O usuário desinstala/reinstala o aplicativo
  • O usuário limpa os dados do aplicativo.

Definir o delegado de mensagens

Para receber tokens de registro, implemente o protocolo delegado de mensagens e defina a propriedade delegate de FIRMessaging após chamar [FIRApp configure] . Por exemplo, se o delegado do aplicativo estiver em conformidade com o protocolo do delegado de mensagens, você poderá definir o delegado em application:didFinishLaunchingWithOptions: como ele mesmo.

Rápido

Messaging.messaging().delegate = self

Objective-C

[FIRMessaging messaging].delegate = self;

Buscando o token de registro atual

Os tokens de registro são entregues por meio do método messaging:didReceiveRegistrationToken: . Esse método é chamado geralmente uma vez por aplicativo iniciado com token de registro. Quando esse método é chamado, é o momento ideal para:

  • Se o token de registro for novo, envie-o para o servidor de aplicativos.
  • Assine o token de registro nos tópicos. Isso é necessário apenas para novas assinaturas ou para situações em que o usuário reinstalou o aplicativo.

Você pode recuperar o token diretamente usando token(completion:) . Um erro não nulo é fornecido se a recuperação do token falhou de alguma forma.

Rápido

Messaging.messaging().token { token, error in
  if let error = error {
    print("Error fetching FCM registration token: \(error)")
  } else if let token = token {
    print("FCM registration token: \(token)")
    self.fcmRegTokenMessage.text  = "Remote FCM registration token: \(token)"
  }
}

Objective-C

[[FIRMessaging messaging] tokenWithCompletion:^(NSString *token, NSError *error) {
  if (error != nil) {
    NSLog(@"Error getting FCM registration token: %@", error);
  } else {
    NSLog(@"FCM registration token: %@", token);
    self.fcmRegTokenMessage.text = token;
  }
}];

Você pode usar esse método a qualquer momento para acessar o token em vez de armazená-lo.

Monitorar atualização de token

Para ser notificado sempre que o token for atualizado, forneça um delegado em conformidade com o protocolo de delegação de mensagens. O exemplo a seguir registra o delegado e adiciona o método delegado adequado:

Rápido

func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String?) {
  print("Firebase registration token: \(String(describing: fcmToken))")

  let dataDict: [String: String] = ["token": fcmToken ?? ""]
  NotificationCenter.default.post(
    name: Notification.Name("FCMToken"),
    object: nil,
    userInfo: dataDict
  )
  // TODO: If necessary send token to application server.
  // Note: This callback is fired at each app startup and whenever a new token is generated.
}

Objective-C

- (void)messaging:(FIRMessaging *)messaging didReceiveRegistrationToken:(NSString *)fcmToken {
    NSLog(@"FCM registration token: %@", fcmToken);
    // Notify about received token.
    NSDictionary *dataDict = [NSDictionary dictionaryWithObject:fcmToken forKey:@"token"];
    [[NSNotificationCenter defaultCenter] postNotificationName:
     @"FCMToken" object:nil userInfo:dataDict];
    // TODO: If necessary send token to application server.
    // Note: This callback is fired at each app startup and whenever a new token is generated.
}

Como alternativa, você pode ouvir um NSNotification chamado kFIRMessagingRegistrationTokenRefreshNotification em vez de fornecer um método delegado. A propriedade do token sempre tem o valor do token atual.

Enviar uma mensagem de notificação

  1. Instale e execute o aplicativo no dispositivo de destino. Em dispositivos Apple, você precisará aceitar a solicitação de permissão para receber notificações remotas.

  2. Verifique se o aplicativo está em segundo plano no dispositivo.

  3. No console do Firebase, abra a página Mensagens .

  4. Se esta for sua primeira mensagem, selecione Criar sua primeira campanha .

    1. Selecione Mensagens de notificação do Firebase e selecione Criar .
  5. Caso contrário, na guia Campanhas , selecione Nova campanha e depois Notificações .

  6. Digite o texto da mensagem. Todos os outros campos são opcionais.

  7. Selecione Enviar mensagem de teste no painel direito.

  8. No campo Adicionar um token de registro FCM , insira o token de registro obtido em uma seção anterior deste guia.

  9. Selecione Teste .

Depois de selecionar Test , o dispositivo cliente de destino (com o aplicativo em segundo plano) deve receber a notificação.

Para obter informações sobre a entrega de mensagens para seu aplicativo, consulte o painel de relatórios do FCM , que registra o número de mensagens enviadas e abertas em dispositivos Apple e Android, juntamente com dados de "impressões" (notificações vistas pelos usuários) para aplicativos Android.

Próximos passos

Para ir além das mensagens de notificação e adicionar outro comportamento mais avançado ao seu aplicativo, consulte: