Esta página foi traduzida pela API Cloud Translation.
Switch to English

Notas de versão do Firebase C ++

Para revisar as notas de versão do console do Firebase e de outras plataformas do Firebase e SDKs relacionados, consulte as Notas da versão do Firebase .

Para instalar este SDK, consulte Adicionar Firebase ao seu projeto C ++ .

Versão 6.15.1 - 29 de junho de 2020

 -  Fixed an issue that warns about Future handle not released
  properly.
 

Cloud Firestore

  • todos os membros da enumeração de Error agora são prefixados com kError ; por exemplo, Error::kUnavailable agora é Error::kErrorUnavailable , que é mais consistente com outros SDKs do Firebase C ++.
  • O Firestore agora pode ser compilado no Windows, mesmo na presença de macros min e max definidos em <windows.h> .

Versão 6.15.0 - 2 de junho de 2020

  • Corrigida uma afirmação criando um aplicativo personalizado quando não há um aplicativo padrão.

Cloud Firestore

  • Removido *LastResult funciona da API pública.
  • Eliminado o prefixo From das funções estáticas no FieldValue
  • CollectionReference::id agora retorna uma referência const.
  • Corrigido o erro absl time_internal linker no Windows.
  • A assinatura do retorno de chamada foi alterada para Firestore::RunTransaction para passar os parâmetros por referência mutável, não por ponteiro.

Versão 6.14.1 - 18 de maio de 2020

Autenticação

  • Adicionado campo SignInResult.UserInfo.updated_credential. No iOS, os erros do kAuthErrorCredentialAlreadyInUse ao vincular à Apple podem conter um credencial atualizado válido para uso na entrada do usuário vinculado à Apple.

Versão 6.14.0 - 23 de abril de 2020

Cloud Firestore

  • Firestore.LoggingEnabled é substituído pelo Firestore.LogLevel para Firestore.LogLevel a consistência com outras APIs do Firebase Unity. O getter para esta propriedade foi removido.

Versão 6.12.0 - 5 de março de 2020

  • Adicionado suporte experimental para o Cloud Firestore SDK, disponível em todas as plataformas suportadas. Observe que a API está sujeita a alterações.

Versão 6.11.0 - 20 de fevereiro de 2020

  • (iOS) A versão mínima suportada do Xcode é 10.3.
  • Ao criar um aplicativo, o project_id do aplicativo padrão agora é usado se um não for fornecido.

Banco de Dados em Tempo Real

  • (Área de trabalho) Corrigido um problema com o banco de dados se conectando ao servidor após a revogação do token de autenticação.

Versão 6.10.0 - 30 de janeiro de 2020

  • (iOS) Atualizou o CMakeLists.txt para vincular bibliotecas estáticas armazenadas em libs / ios / universal para destinos iOS.

Autenticação

  • Reverteu a API de um manipulador de retorno de chamada experimental FederatedAuthHandler.
  • (iOS) Adicionada uma nova versão do OAuthProvider::GetCredential , que aceita um parâmetro nonce conforme exigido pelo login na Apple.

Versão 6.9.0 - 27 de dezembro de 2019

Autenticação

  • Adicionado Auth::SignInWithProvider , User::LinkWithProvider Auth::SignInWithProvider e User::ReauthenticateWithProvider , permitindo User::ReauthenticateWithProvider com provedores de autenticação de terceiros.
  • Adicionadas constantes strings kProviderId às classes do provedor de autenticação.
  • (iOS): suporte adicionado para vincular credenciais de entrada da Apple.

FCM

  • (Android): adicionada a opção para ativar ou desativar a exportação de métricas de entrega de mensagens para o BigQuery. Atualmente, esta funcionalidade está disponível apenas no Android. Os stubs são fornecidos no iOS para compatibilidade entre plataformas.

Versão 6.8.0 - 3 de dezembro de 2019

  • (Linux) Adicionada verificação do compilador / stdlib para garantir que o executável do desenvolvedor e a biblioteca Firebase sejam compiladas com o mesmo compilador e stdlib.
  • Corrigido um problema em que a geração de recursos do google-services.json falharia se python3 fosse usado para executar o script de geração de recursos.

AdMob

  • (Android): foi corrigida uma operação potencialmente não segura de thread na destruição dos BannerViews.

Versão 6.7.0 - 13 de novembro de 2019

  • Adicionado noexcept para mover construtores para garantir que o STL use a movimentação sempre que possível.
  • (Windows) Corrigido o erro em que o valor literal 0 chamará o construtor de strings para a classe Variant.
  • Adicionada otimização de string pequena para Variant .
  • Número reduzido de novas / excluídas para Variant se estiver copiando o mesmo tipo.
  • Verifique se a ordem de classificação do mapa para a variante é consistente.

Google Analytics

  • (iOS) Corrigido o comportamento atrevido do analytics::GetAnalyticsInstanceId() após chamar o analytics::ResetAnalyticsData() .

Banco de Dados em Tempo Real

  • Corrigido um problema que fazia com que os carimbos de data e hora não fossem preenchidos corretamente ao usar DatabaseReference :: UpdateChildren ().
  • (Área de trabalho) Corrigido um problema que impedia que os eventos do ouvinte fossem acionados após a chamada DatabaseReference :: UpdateChildren ().
  • (Área de trabalho) As funções que usam os parâmetros const char* agora falharão normalmente se passarem um ponteiro nulo.
  • (Desktop) Corrigido um problema que estava causando. DatabaseReference::RunTransaction() falhou devido ao armazenamento de dados quando o local armazenou anteriormente um vetor com mais de 10 itens ou um mapa com chaves inteiras.
  • (Área de trabalho) Corrigido um problema que poderia resultar em uma captura instantânea incorreta para ouvintes em circunstâncias específicas.
  • (Área de trabalho): corrigido problema de pedido de filhos ao usar OrderBy em tipos double ou int64 com valores grandes.

Armazenamento

  • (iOS / Android) Corrigido um problema em que Storage::GetReferenceFromUrl retornava um StorageReference inválido.
  • (Área de trabalho) url() alterado url() para retornar a cadeia vazia se a instância de Storage foi criada com o URL (nulo) padrão.

Versão 6.6.1 - 2 de outubro de 2019

  • Corrigida uma possível referência indefinida em Future :: OnCompletion.

Versão 6.6.0 - 25 de setembro de 2019

Autenticação

  • (Android) Correção de declaração quando não estiver usando a instância de aplicativo padrão.
  • (Desktop) Corrigido o não carregamento da lista de provedores a partir dos dados do usuário em cache.

Banco de Dados em Tempo Real

  • (Área de trabalho) As consultas em locais no banco de dados com regras de consulta agora funcionam corretamente, em vez de sempre retornar "Permissão negada".
  • (Área de trabalho) Corrigida a conversão de mapa em vetor ao disparar eventos que possuem mapas que contêm chaves inteiras.

Configuração remota

  • (Android) Corrigido um erro ao passar uma Variante do tipo Blob para SetDefaults () no Android.

Versão 6.5.0 - 10 de setembro de 2019

Autenticação

  • (Linux) Registro de erro aprimorado se libsecret (necessário para persistência de login) não estiver instalado no Linux.

Banco de Dados em Tempo Real

  • O banco de dados agora suporta a configuração do nível de log independentemente do criador de logs no nível do sistema.

Versão 6.4.0 - 26 de agosto de 2019

  • Corrigido um problema que fazia com que os futuros limpassem seus dados, mesmo que uma referência ainda estivesse sendo mantida.

Autenticação

  • Corrigido um problema com as informações atualizadas do usuário que não estavam sendo mantidas.

Banco de Dados em Tempo Real

  • (Área de trabalho) Corrigida uma falha ao salvar um carimbo de data / hora do servidor durante uma transação.

Versão 6.3.0 - 14 de agosto de 2019

  • (iOS / Android) Corrigido um erro que permite que instâncias personalizadas do firebase :: App sejam criadas após o reinício do aplicativo.

Autenticação

  • (Área de trabalho) Comportamento de destruição alterado. Em vez de aguardar a conclusão de todas as operações assíncronas, agora o Auth cancelará todas as operações assíncronas e será encerrado. Para retornos de chamada que já estão em execução, isso protegerá os casos em que instâncias de autenticação talvez não existam mais.
  • (iOS) Corrigida uma exceção no firebase :: auth :: VerifyPhoneNumber.
  • (iOS) impediu a autenticação de ficar pendurada na destruição se algum futuro local permanecer no escopo.

Banco de Dados em Tempo Real

  • (Área de trabalho) Corrigido um problema que poderia causar uma falha ao atualizar o descendente de um local com um ouvinte conectado.

Versão 6.2.2 - 26 de julho de 2019

Autenticação

  • (Área de trabalho) Após carregar os dados persistentes do usuário, verifique se o token não expirou.

Banco de Dados em Tempo Real

  • (Área de trabalho) Uso corrigido de um token de autenticação expirado após o carregamento do armazenamento persistente.
  • (Desktop) Fixed DatabaseReference :: RunTransaction () enviando dados inválidos para o servidor, causando a mensagem de erro "Erro na mensagem recebida" e congelando.

funções

  • (Área de trabalho) Uso corrigido de um token de autenticação expirado após o carregamento do armazenamento persistente.

Armazenamento

  • (Área de trabalho) Uso corrigido de um token de autenticação expirado após o carregamento do armazenamento persistente.

Versão 6.2.0 - 2 de julho de 2019

  • Atualizado as dependências do Firebase iOS e do Firebase Android .
  • Foi adicionada uma maneira de configurar a verbosidade do log em todo o SDK.

ID da Instância

  • (Android) Corrigida uma falha ao destruir objetos InstanceID.
  • Adicionado suporte para domínios personalizados.

Banco de Dados em Tempo Real

  • Foi adicionada uma maneira de configurar a verbosidade do log das instâncias do banco de dados em tempo real.

Versão 6.1.0 - 6 de junho de 2019

Autenticação

  • As credenciais do usuário agora persistirão entre as sessões. Consulte a documentação para obter mais informações.
  • Como parte da alteração acima, se você chamar current_user () imediatamente após a criação da instância Auth, ela será bloqueada até o carregamento do estado do usuário salvo.
  • Corrigido um problema em que o banco de dados / funções / armazenamento talvez não usasse o token de autenticação mais recente imediatamente após o login.
  • Corrigido um problema em que um código de erro podia ser relatado incorretamente no Android.

Banco de Dados em Tempo Real

  • (Desktop) Corrigido um problema que poderia causar uma falha durante o desligamento.
  • (iOS) Corrigida uma condição de corrida que poderia causar uma falha ao limpar ouvintes de banco de dados no iOS.
  • (iOS) Corrigido um problema em que valores longos (64 bits) podiam ser gravados no banco de dados incorretamente (truncados para 32 bits).

funções

  • Altere assert para registrar o aviso quando o aplicativo for excluído antes que a instância do Cloud Functions seja excluída.

FCM

  • Canal_id adicionado às notificações de mensagens.

Versão 6.0.0 - 7 de maio de 2019

Autenticação

  • Corrigida uma condição de corrida atualizando o usuário atual.

FCM

  • (iOS / Android) Corrija um problema em que Assinar e Cancelar inscrição nunca retornaria se você estivesse definido para não receber um token de registro.

Convida

  • Removida a biblioteca Firebase Invites, pois ela não é mais suportada.

Configuração remota

  • Funções removidas usando os namespaces de configuração, que foram preteridos em um release anterior.

Google Analytics

  • SetMinimumSessionDuration descontinuado.

AdMob

  • (Android) Para solucionar uma dependência incompatível, a AdMob exige temporariamente uma dependência adicional em com.google.android.gms: play-services-measure-sdk-api: 16.5.0

Versão 5.7.0 - 19 de abril de 2019

Como esta versão do SDK do Firebase C ++ é a versão final para oferecer suporte ao Firebase Invites, ela permanecerá disponível para download aqui .

Configuração remota

  • Os namespaces de configuração agora estão obsoletos. Você precisará mudar para métodos que usam o espaço para nome padrão.

AdMob

  • (Android) Para solucionar uma dependência incompatível, a AdMob exige temporariamente uma dependência adicional em com.google.android.gms: play-services-measure-sdk-api: 16.4.0

Versão 5.6.1 - 5 de abril de 2019

  • (iOS) Atualizado para o SDK do iOS mais recente para corrigir uma falha no firebase::App criação de firebase::App causada por uma condição de corrida. A falha pode ocorrer ao acessar a propriedade [FIRApp firebaseUserAgent] do FIRApp do iOS.

Versão 5.6.0 - 18 de março de 2019

  • O Firebase C ++ agora é de código aberto .
  • Corrigida uma falha ao excluir o firebase::App antes de excluir outros subsistemas do Firebase.

Autenticação

  • (iOS) Adicionada autenticação do Game Center.

Banco de Dados em Tempo Real

  • (Computador) Retrabalhou como os valores do servidor em cache funcionam para estar mais alinhado com as implementações móveis.
  • (Área de trabalho) As transações simultâneas agora são suportadas.
  • (Desktop) O Timestamp ServerValue especial agora é suportado.
  • (Área de trabalho) Agora o KeepSynchronized é suportado.

Versão 5.5.0 - 19 de fevereiro de 2019

  • (Android) Adicionado um arquivo gradle ao SDK que permite adicionar dependências do Firebase Android aos seus aplicativos Firebase C ++. Veja as amostras do Firebase C ++ para exemplo de uso.

Convida

  • Convites foi preterido. Consulte https://firebase.google.com/docs/invites para obter detalhes.

Versão 5.4.4 - 18 de janeiro de 2019

AdMob

  • (iOS) Corrigido um problema com a string do bloco de anúncios em vídeo recompensado saindo do escopo.

Funções da nuvem

  • (Android) Corrigido um problema com o tratamento de erros.

Versão 5.4.3 - 30 de novembro de 2018

Armazenamento

  • (iOS): corrigido um problema ao baixar arquivos com GetBytes .

Versão 5.4.2 - 15 de novembro de 2018

Autenticação

  • (Android): Foi removido um erro irrelevante sobre a classe Java FirebaseAuthWebException.

Versão 5.4.0 - 19 de outubro de 2018

  • (Android): falha na geração do link curto corrigida com o "erro 8".

Banco de Dados em Tempo Real

  • (Área de trabalho) O SDK da área de trabalho do banco de dados em tempo real usa o REST para acessar seu banco de dados. Por esse motivo, você deve declarar os índices que usa com Query :: OrderByChild () na área de trabalho ou seus ouvintes falharão.

Versão 5.3.1 - 3 de outubro de 2018

Convida

  • (Android) Corrigida uma exceção quando a opção de código da versão mínima do Android é usada no Android.

Versão 5.3.0 - 20 de setembro de 2018

  • (iOS) A versão mínima suportada do Xcode é 9.4.1.

Banco de Dados em Tempo Real

  • (Área de trabalho) Problemas corrigidos no ChildListener .
  • (Área de trabalho) Corrigida a falha que poderia ocorrer se o banco de dados fosse excluído enquanto uma operação assíncrona ainda estivesse em andamento.

funções

  • (Android) Corrigido um problema quando uma função retorna uma matriz.

Versão 5.2.1 - 16 de agosto de 2018

Autenticação

  • Corrigida uma condição de corrida que estava retornando o futuro errado quando você chamava o mesmo método duas vezes em rápida sucessão.

Banco de Dados em Tempo Real

  • Corrigida uma condição de corrida que estava retornando o futuro errado quando você chamava o mesmo método duas vezes em rápida sucessão.
  • (Desktop) Suporte fixo para ChildListener quando usado com Query::EqualTo() , Query::StartAt() , Query::EndAt() , Query::LimitToFirst() e Query::LimitToLast() .
  • Corrigida uma falha no operador de atribuição de cópia DatabaseReference / Query e no construtor de cópias.

Versão 5.2.0 - 20 de julho de 2018

  • (Android) Corrigida uma referência nula no verificador de disponibilidade dos serviços do Google Play.

Autenticação

  • (Android) Corrigida uma falha em User::UpdatePhoneNumberCredential() .

Banco de Dados em Tempo Real

  • Adicionada uma versão do GetInstance() que permite a passagem da URL do banco de dados para uso.

funções

  • Foi adicionada uma maneira de especificar em qual região executar a função.

FCM

  • Alterou Subscribe() e Unsubscribe() para retornar um futuro.

Versão 5.1.1 - 27 de junho de 2018

  • Atualizadas apenas as versões de dependência do Android e iOS.

Versão 5.1.0 - 22 de junho de 2018

Funções da nuvem

  • Adicionado suporte para o Cloud Functions no iOS, Android e desktop.

Google Analytics

  • Adicionado ResetAnalyticsData() para limpar todos os dados de análise de um aplicativo do dispositivo.
  • Adicionado GetAppInstanceId() que permite que os desenvolvedores recuperem o ID da instância de análise do aplicativo atual.

Autenticação

  • Vincular uma credencial a um provedor que já foi vinculado agora produz um erro.
  • (iOS) Corrigidas falhas no User::LinkAndRetrieveDataWithCredential() e User::ReauthenticateAndRetrieveData() .
  • (iOS) URL da foto corrigido nunca retornando um valor no iOS.
  • (Android) UpdateUserProfile() corrigida a configuração do URL da foto do perfil com UpdateUserProfile() .

Banco de Dados em Tempo Real

  • Adicionado suporte para ServerValues ​​nos métodos SetPriority() .

Versão 5.0.0 - 5 de junho de 2018

  • (Android / iOS) Os nomes das bibliotecas foram prefixados com "firebase_", por exemplo, libapp.a agora é libfirebase_app.a. Isso os alinha ao esquema de nomeação usado na área de trabalho e nas estruturas do iOS.
  • (Android) Tratamento de erros aprimorado quando o dispositivo está sem espaço.
  • Métodos de acesso reprovado removidos de Future.

AdMob

  • Métodos de acesso reprovado removidos do BannerView e InterstitialAd.

Autenticação

  • Removedores acessadores obsoletos removidos de Auth, Credential, User e UserInfoInterface, incluindo User :: refresh_token ().

Banco de Dados em Tempo Real

  • Removedores acessadores obsoletos de DatabaseReference, Query, DataSnapshot e MutableData.
  • Adicionado um campo aos links dinâmicos recebidos, descrevendo a força da partida.

FCM

  • Adicionada uma estrutura de opções de inicialização opcional. Isso pode ser usado para suprimir o prompt no iOS que solicita permissão para receber notificações na inicialização. A permissão pode ser solicitada manualmente usando a função firebase :: messaging :: RequestPermission ().

Convida

  • Adicionada OnInviteReceived à classe base do Listener que inclui a força da correspondência no convite recebido como uma enumeração. Função anterior descontinuada que a recebeu como um valor booleano.

Armazenamento

  • Removidos acessadores obsoletos de StorageReference.
  • Metadados removidos :: download_url () e Metadados :: download_urls (). Por favor, use StorageReference :: GetDownloadUrl ().

Versão 4.5.1 - 16 de abril de 2018

Autenticação

  • (Desktop) Adicionado suporte para acessar os metadados do usuário.

Banco de Dados em Tempo Real

  • (Desktop) Corrigido um bug para fazer a criação de instâncias de banco de dados com URLs inválidos retornar nullptr.
  • (Área de trabalho) Corrigido um problema em que valores incorretos podiam ser transmitidos para OnChildAdded.

FCM

  • Adicionados os métodos SetAutoTokenRegistrationOnInitEnabled () e IsAutoTokenRegistrationOnInitEnabled () para ativar ou desativar a geração automática de token.

Configuração remota

  • Corrigido um erro que causava relatórios incorretos de sucesso ou falha durante uma busca ().

Versão 4.5.0 - 19 de março de 2018

AdMob

  • Os anúncios Native Express foram descontinuados, portanto, NativeExpressAdView foi marcado como obsoleto e será removido em uma versão futura.

Autenticação

Banco de Dados em Tempo Real

  • A implementação do stub (da área de trabalho) foi substituída pela implementação funcional do fluxo de trabalho da área de trabalho no Windows, OS X e Linux.
  • (Área de trabalho) Ao usar o Banco de dados em tempo real na área de trabalho, apenas uma transação pode ser executada em uma determinada subárvore ao mesmo tempo.
  • (Área de trabalho) Ao usar o Banco de dados em tempo real na área de trabalho, a persistência de dados não está disponível.

Configuração remota

Armazenamento

  • A implementação do stub (da área de trabalho) foi substituída pela implementação funcional do fluxo de trabalho da área de trabalho no Windows, OS X e Linux.
  • Adicionado hash MD5 aos metadados.
  • Corrigida uma falha ao excluir ouvintes e outras instâncias de objetos.
  • O controlador agora pode ser usado a partir de qualquer thread.
  • (iOS) Corrigido o tipo de conteúdo incorreto ao fazer o upload.

Versão 4.4.3 - 5 de março de 2018

  • (iOS) Removidos símbolos não resolvidos na biblioteca de aplicativos que podem causar erros ao forçar a resolução.

Versão 4.4.2 - 23 de fevereiro de 2018

  • (Windows) Atualizadas todas as bibliotecas estáticas para oferecer suporte a diferentes bibliotecas de tempo de execução C e correspondentemente atualizadas a estrutura de diretórios do pacote.
  • (Linux) Corrigidos problemas de vinculação com todas as bibliotecas stub C ++.
  • (iOS) Agora busca o ID do convite ao usar links universais.
  • (iOS) Corrigida a falha na falha na conclusão do link dinâmico.
  • (iOS) Corrigido um problema em que alguns erros não eram relatados corretamente.

Convida

  • Corrigido o SendInvite nunca concluído na implementação do stub.

Configuração remota

  • Configuração remota (iOS) Corrigido um problema em que alguns erros não eram relatados corretamente.

Armazenamento

  • Corrigido Metadata :: content_language retornando os dados incorretos.
  • (iOS) Os formatos de caminhos de referência agora são consistentes com outras plataformas.
  • (iOS) Corrigido um problema em que tentar fazer o upload para um caminho inexistente não completaria o futuro.
  • (iOS) Corrigida uma falha quando um download falha.

Versão 4.4.1 - 26 de janeiro de 2018

Banco de Dados em Tempo Real

  • SetPersistenceEnabled agora define a persistência ativada.

ID da Instância

  • (iOS) O GetToken não falha mais sem um certificado APNS e não força mais o registro de notificações.

Versão 4.4.0 - 3 de janeiro de 2018

ID da Instância

  • Adicionada biblioteca de ID da instância.

Versão 4.3.0 - 30 de novembro de 2017

Autenticação

  • Adicionado suporte para acessar os metadados do usuário.

Configuração remota

  • (Android) Corrigida a conversão remote_config::ValueSource .

Versão 4.2.0 - 2 de outubro de 2017

Google Analytics

  • Corrigido um erro que impedia a identificação do usuário e as propriedades do usuário.

Autenticação

  • As operações com falha agora retornam códigos de erro mais específicos.
  • A autenticação por telefone (iOS) não requer mais notificações por push. Quando as notificações por push não estão disponíveis, a verificação reCAPTCHA é usada.

Banco de Dados em Tempo Real

  • (Android) Corrigido MutableData::children_count() .

FCM

  • As mensagens enviadas aos usuários agora podem conter um URL de link.
  • (Android) Corrigido um erro que impedia que o campo de ID da mensagem fosse definido.

Versão 4.1.0 - 23 de agosto de 2017

  • Adicionado suporte a std::function ao Future::OnCompletion , para permitir o uso de lambdas C ++ 11 com capturas.
  • Os futuros agora são invalidados quando sua API Firebase subjacente é destruída.
  • Atualizado para iOS 4.1.0 SDK e Android 11.2.0 SDK .

AdMob

  • (iOS) Corrigida uma falha caso um BannerView fosse excluído enquanto uma chamada para Destroy() ainda estivesse pendente.

Banco de Dados em Tempo Real

  • Adicionado um ponteiro de contexto para DatabaseReference::RunTransaction , bem como suporte a std::function para permitir o uso de lambdas C ++ 11 com capturas.
  • DataSnapshot , DatabaseReference , Query e outros objetos são invalidados quando sua instância de Database é destruída.

FCM

  • Adicionado PollableListener para facilitar a pesquisa de mensagens em um loop de atualização.
  • (Android) Corrigido um erro em que message_type não estava definido na estrutura da mensagem.
  • (iOS) Corrigida uma condição de corrida se uma mensagem for recebida antes da inicialização do FCM.
  • (iOS) Corrigido um erro que detecta se a notificação foi aberta se o aplicativo estiver sendo executado em segundo plano.

Configuração remota

  • Ao listar chaves, a lista agora inclui chaves com os padrões definidos, mesmo que não estivessem presentes na configuração buscada.

Armazenamento

  • StorageReference objetos StorageReference são invalidados quando sua instância de Storage é destruída.

Versão 4.0.3 - 1 de agosto de 2017

  • (iOS) Corrigido um problema que fazia com que as opções personalizadas não fossem aplicadas às instâncias do firebase :: App.
  • (iOS) Corrigido um erro que fazia com que as pesquisas de implementação de métodos falhassem quando outros SDKs do iOS renomeavam os seletores de métodos swizzled.
  • (Android) Corrigida conclusão futura se a criação de links curtos falhar.

FCM

  • (iOS) Corrigido o tratamento de mensagens quando as mensagens são recebidas via canal direto para o back-end do FCM (ou seja, não via APNS).

Versão 4.0.2 - 7 de julho de 2017

Google Analytics

  • Corrigido SetCurrentScreen para funcionar com qualquer thread.

Autenticação

  • (iOS) Corrigido um problema que invalidava incorretamente o usuário atual se a vinculação de credenciais falhasse.
  • Corrigido um problema que fazia com que um aplicativo travasse ou não recebesse um link dinâmico se ele fosse aberto quando o aplicativo estivesse instalado e não estivesse em execução.

FCM

  • (iOS) Corrigida uma falha quando nenhum Listener estava definido.
  • Listener::OnTokenReceived fixo Listener::OnTokenReceived sendo chamado ocasionalmente duas vezes com o mesmo token.

Versão 4.0.1 - 16 de junho de 2017

FCM

  • (Android): foi corrigido um problema em que Terminate() não estava encerrando corretamente a biblioteca do FCM.
  • (iOS): corrigido um problema em que a biblioteca travava ao iniciar se não houvesse token de registro.

Links e convites dinâmicos

  • (iOS) Corrigido um problema que fazia com que um aplicativo não recebesse um link dinâmico se ele fosse aberto quando o aplicativo estivesse instalado e não estivesse em execução.

Versão 4.0.0 - 9 de junho de 2017

  • (Android) Corrigida falha em algumas circunstâncias após a resolução de dependências, atualizando os serviços do Google Play.

Autenticação

  • Adicionado suporte para autenticação de número de telefone.
  • Adicionada a capacidade de recuperar os metadados do usuário.
  • Movido a notificação do token para um objeto de ouvinte separado.
  • Adicionada uma biblioteca autônoma separada dos convites.

Convida

  • (iOS) Corrigido um problema no swizzling do método SDK do Analytics, que fazia com que links / convites dinâmicos não fossem enviados para o aplicativo.

FCM

  • (Android) Corrigida uma regressão introduzida na 3.0.3 que causava uma falha ao abrir uma notificação quando o aplicativo estava sendo executado em segundo plano.
  • (iOS) Corrigida interoperação com outros usuários de notificações locais.

Versão 3.1.2 - 11 de maio de 2017

Autenticação

  • Corrigida uma falha causada por uma referência de memória antiga quando um objeto firebase::auth::Auth é destruído e recriado para o mesmo objeto App .
  • Corrigida uma possível corrupção de memória quando o AuthStateListener é destruído.

Versão 3.1.1 - 9 de maio de 2017

  • (Android) Corrigida uma falha no atualizador de serviços do Google Play que ocorria ao clicar fora da caixa de diálogo nos dispositivos Android 4.x.

Autenticação

  • Corrigido um problema que fazia com que os usuários fossem invalidados quando uma credencial de vinculação falha.
  • Preterido o método User::refresh_token() .

FCM

  • (Android) Foi resolvido um problema que fazia com que um aplicativo recebesse uma mensagem vazia quando uma mensagem de notificação é recebida enquanto o aplicativo está em segundo plano e o usuário toca no ícone do aplicativo em vez de na mensagem de notificação.

Convida

  • (iOS) Corrigido um problema que resultava no método de application:openURL:sourceApplication:annotation: delegada do application:openURL:sourceApplication:annotation: não sendo chamado ao vincular a biblioteca de convites.

Armazenamento

  • Modificou a API para que seja possível construir metadados sem uma referência de armazenamento.

Versão 3.1.0 - 8 de março de 2017

Armazenamento

  • Storage::GetInstance() adicionada uma sobrecarga para o Storage::GetInstance() que aceita uma URL gs://... , para que você possa usar o Cloud Storage com vários buckets.

Convida

  • (Android) Corrigido um problema em que os convites com links vazios deixavam de ser recebidos.

Versão 3.0.0 - 27 de fevereiro de 2017

  • Métodos renomeados e descontinuados que eram inconsistentes com o Guia de estilos do Google C ++. Os métodos descontinuados serão removidos em uma versão futura (daqui a aproximadamente 2-3 versões).

Google Analytics

  • Adicionado SetCurrentScreen() .

Autenticação

  • Corrigida uma condição de corrida acessando dados do usuário em retornos de chamada.
  • (Android) Adicionado is_valid() para verificar se uma credencial retornada por GetCredential() é válida.

Convida

  • (Android) Adicionada uma função Fetch() para buscar convites recebidos em momentos diferentes do início do aplicativo. Você deve chamar isso no Android quando o aplicativo retornar ao primeiro plano (no iOS, isso é tratado automaticamente).
  • (iOS) Corrigida regressão desde a versão 2.1.1 que interrompeu o Invites se o AppDelegate não implementou o método de URL aberto.

FCM

  • Adicionado um campo ao firebase::messaging::Message especificando se a mensagem foi recebida quando o aplicativo estava em segundo plano.
  • (Android) Adicionado um arquivo AAR contendo as alterações do manifesto do Android necessárias para o recebimento de notificações. Você pode adicionar isso ao seu projeto em vez de modificar o manifesto diretamente.
  • (iOS) Corrigida regressão desde a versão 2.1.1 que quebrou o FCM no iOS 8 e 9 quando um AppDelegate não implementou métodos de notificação remota.

Configuração remota

  • Adicionado suporte para a inicialização dos padrões de Configuração remota a partir dos valores firebase::Variant , incluindo dados binários.

Versão 2.1.3 - 6 de fevereiro de 2017

  • Corrigido um possível impasse ao executar retornos de chamada registrados via firebase::Future::OnCompletion .

Autenticação

  • (Android) Corrigido um erro no firebase::auth::User::PhotoUri .

FCM

  • (iOS) Removida a dependência do Xcode 8.
  • (Android) Corrigido um problema em que o aplicativo recebia uma mensagem vazia na inicialização.

Versão 2.1.2 - 20 de janeiro de 2017

AdMob

  • (Android) Corrigido um problema no firebase::admob::InterstitialAd que causava uma falha após a exibição de vários anúncios intersticiais.

Versão 2.1.1 - 18 de janeiro de 2017

Autenticação

  • (Android) Corrigido um problema que fazia com que um futuro nunca fosse concluído ao fazer login enquanto um usuário já estava conectado.

FCM

  • (iOS) Corrigido um problema com o método swizzling que fazia com que alguns dos métodos UIApplicationDelegate do aplicativo não fossem chamados.
  • (iOS) Corrigido um problema que causava uma falha ao inicializar a biblioteca ao criar com o Xcode 8 para iOS 10.

Convida

  • (iOS) Corrigido um problema com o método swizzling que fazia com que alguns dos métodos UIApplicationDelegate do aplicativo não fossem chamados.

Versão 2.1.0 - 9 de dezembro de 2016

Armazenamento

  • Adicionada uma biblioteca cliente C ++ para armazenamento. Para começar, consulte Introdução ao Cloud Storage for C ++ .
  • (Android) A pausa e a retomada das operações de armazenamento causarão falha na transferência de dados com o código de erro kErrorUnknown .

Autenticação

  • Adicionada uma verificação de credenciais de usuário salvas quando a autenticação é inicializada.

Versão 2.0.0 - 7 de novembro de 2016

AdMob

  • Adicionado suporte para os anúncios Express nativos da AdMob.

Autenticação

  • Adicionada a classe AuthStateListener que fornece notificações quando um usuário está conectado ou desconectado.

Banco de Dados em Tempo Real

Convida

Versão 1.2.1 - 3 de outubro de 2016

Mensagens na nuvem

  • (Android) Corrigido um erro que impedia que os aplicativos terminassem corretamente.
  • (iOS) Adicionada implementação do construtor de cópias ausente nas bibliotecas iOS e stub.

Versão 1.2.0 - 21 de setembro de 2016

  • (Android) Adicionado firebase::ModuleInitializer , uma classe auxiliar para inicializar os módulos do Firebase e lidar com qualquer dependência que firebase::ModuleInitializer faltando nos serviços do Google Play.

Mensagens na nuvem

  • Adicionado firebase::messaging::Notification e métodos associados para permitir a recuperação do conteúdo de uma notificação.
  • (iOS) Adicionado suporte para notificações do iOS 10.
  • (Android) Corrigido um problema que causava uma falha se o Cloud Messaging fosse inicializado antes do carregamento da biblioteca nativa.

Autenticação

  • (Android) Adicionados novos métodos de API, User::SendEmailVerification() e User::EmailVerified() para verificar o endereço de email de um usuário.

Configuração remota

  • Adicionados os GetKeys() e GetKeysByPrefix() para permitir que os desenvolvedores encontrem chaves de parâmetro com base em um prefixo de chave.

Convida

  • (iOS) Corrigido um problema que poderia travar um aplicativo durante o desligamento quando o InvitesReceiver::Fetch() estava pendente.
  • Fixed an issue that occurred when initializing InvitesSender and InvitesReceiver simultaneously.

AdMob

  • Added the Rewarded Video Mediation feature to the C++ SDK. For more information, see the Rewarded Video C++ guide .
  • You can now pass your AdMob App ID to firebase::admob::Initialize() to help reduce latency for the initial ad request.
  • (iOS) You must now call BannerView::Show() to display an ad. Previously, this was only required on Android.
  • Fixed an issue where BannerView::Listener() received an incorrect bounding box.

Version 1.1.0 - August 1, 2016

App

  • Added utility functions to check whether Google Play services is available. See google_play_services::CheckAvailability() and google_play_services::MakeAvailable() for more information.
  • App::Create() will no longer check for Google Play services, nor will it return nullptr . It will always return an App, and the individual Firebase features will check for Google Play services at initialization if required.

Analytics

  • Fixed a crash that occurs when logging string events.

Authentication

  • firebase::auth::GetAuth() now has an option to return a result that indicates whether initialization was successful, and to return nullptr if initialization failed.

Firebase Cloud Messaging

  • firebase::messaging::Initialize() now returns a result that indicates whether initialization was successful.

Invites

  • Added firebase::invites::Initialize() , which you must call once prior to creating InvitesSender or InvitesReceiver instances. This function returns a result that indicates whether initialization was successful.
  • If you call InvitesReceiver::Fetch() or InvitesReceiver::ConvertInvitation() without first calling firebase::invites::Initialize() , the operation will never complete. To work around this issue, ensure that firebase::invites::Initialize() is called once before creating any InvitesReceiver instances.
  • If you create InvitesSender and then InvitesReceiver , the InvitesReceiver may fail to connect, and be unable to fetch results. To work around this issue, you can delay creating the InvitesSender until after the future returned by InvitesReceiver::Fetch() has completed.

Remote Config

  • firebase::remote_config::Initialize() now returns a result that indicates whether initialization was successful.

AdMob

  • firebase::admob::Initialize() now returns a result that indicates whether initialization was successful.

Version 1.0.1 - June 27, 2016

This update includes a variety of documentation updates and minor bug fixes. This update primarily fixes bugs in the AdMob portion of the C++ SDK. These fixes are described below:

  • Modified firebase::App to check for the required version of Google Play services on creation to prevent firebase::App creation from failing if a user's device is out of date. If Google Play services is out of date, a dialog will prompt the user to install a new version. With the previous version of this SDK, you needed needed to manually check for an up-to-date Google Play services SDK using GoogleApiClient .

AdMob

  • Fixed a potential deadlock when using SetListener from a notification callback in firebase::admob::InterstitialAd and firebase::admob::BannerView on iOS.
  • Fixed a race condition on destruction of admob::BannerView on Android.
  • Fixed Future handle leak. An internal memory leak occurred for objects or modules that use futures for the lifetime of the object or module. For example, during the lifetime of a BannerView object, each call to a method which returns a Future could potentially allocate memory which wouldn't be reclaimed until the BannerView object is destroyed.