Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Ghi chú phát hành iOS của Firebase

Để xem lại ghi chú phát hành cho bảng điều khiển Firebase và cho các nền tảng Firebase khác và các SDK có liên quan, hãy tham khảo Ghi chú phát hành Firebase .

Phiên bản 7.2.0 - ngày 24 tháng 11 năm 2020

  • Giảm tác động của FirebaseApp.configure()+[FIRApp registerInternalLibrary:withName:] đến thời gian khởi chạy ứng dụng ( # 6902 ).
  • Đã thêm hỗ trợ trình mô phỏng arm64 để hỗ trợ các máy Mac silicon mới của Apple. Xem tại đây để biết thêm chi tiết.
  • Do hỗ trợ trình mô phỏng arm64 mới, Xcode 12 hiện được yêu cầu cho bất kỳ sản phẩm nhị phân nào (Phân tích, Hiệu suất, tệp zip và các bản phân phối Carthage).

phân tích

  • Các tệp nhị phân được phân phối dưới dạng xcframeworks để hỗ trợ lát trình mô phỏng arm64.
  • Đã chuyển các hoạt động đọc đắt tiền ra khỏi +initialize ( # 6936 ).
  • Đã tăng phiên bản CocoaPods bắt buộc tối thiểu lên 1.10 chỉ cho phân phối silicon của Apple để thêm hỗ trợ nhị phân xcframework. Xem tại đây để biết thêm chi tiết.

Cơ sở dữ liệu thời gian thực

  • Tạo API kết nối giả lập nhất quán giữa Auth, Database, Firestore và Functions ( # 5916 ).

Cloud Firestore

  • Tạo API kết nối giả lập nhất quán giữa Auth, Database, Firestore và Functions ( # 5916 ).

Chức năng đám mây

  • Tạo API kết nối giả lập nhất quán giữa Auth, Database, Firestore và Functions ( # 5916 ).

Giám sát hiệu suất

  • Thêm hỗ trợ trình mô phỏng Xcode cho các máy Mac mới dựa trên silicon của Apple (SDK chỉ tương thích với Xcode 12 trở lên).
  • Đã tăng phiên bản CocoaPods bắt buộc tối thiểu lên 1.10 để thêm hỗ trợ nhị phân xcframework. Xem tại đây để biết thêm chi tiết.

Phiên bản 7.1.0 - ngày 10 tháng 11 năm 2020

Xác thực

  • Đã khắc phục sự cố trên iOS 14 khi nhiều phương thức hoàn thành ủy quyền ứng dụng được gọi ( # 6863 ).

Crashlytics

  • Đã khắc phục sự cố trong đó tải lên biểu tượng không thành công khi có khoảng trống trong đường dẫn dự án, đặc biệt là trong các bản dựng Unity ( # 6789 ).
  • Đã thêm ghi nhật ký bổ sung khi các yêu cầu cài đặt không thành công với trạng thái 404 để giúp khách hàng gỡ lỗi các sự cố tích hợp ( # 6847 ).

Cloud Firestore

  • Đã thêm dữ liệu truy vấn ban đầu vào thông báo lỗi cho các truy vấn không thể gỡ số hóa.
  • Xóa liên kết thư viện MobileCoreServices rõ ràng khỏi podspec ( # 6850 ).
  • Đã xóa xác thực vượt quá giá trị null và NaN trong bộ lọc truy vấn. Điều này căn chỉnh chặt chẽ hơn SDK với phần phụ trợ Firestore, luôn chấp nhận null và NaN cho tất cả các toán tử, mặc dù điều này không nhất thiết hữu ích.

Chức năng đám mây

  • Đã thêm một hàm tạo để đặt một miền tùy chỉnh ( # 6787 ).

FCM

  • Đã khắc phục sự cố trên iOS 14 khi nhiều phương thức hoàn thành ủy quyền ứng dụng được gọi ( # 6863 ).

Cấu hình từ xa

  • Thêm hỗ trợ cho các sản phẩm Firebase khác để tích hợp với Cấu hình từ xa ( # 6692 ).

Phiên bản 7.0.0 phát hành bản vá - ngày 4 tháng 11 năm 2020

Bản vá lỗi này chỉ có sẵn qua CocoaPods.

Giám sát hiệu suất

  • Đã khắc phục sự cố xảy ra khi ghi yêu cầu mạng ( # 6734 ).

Phiên bản 7.0.0 - ngày 26 tháng 10 năm 2020

Bản phát hành này có một số thay đổi đột phá và do đó tạo thành một bản cập nhật phiên bản chính.

  • Thay đổi đột phá: Đã cập nhật phiên bản iOS tối thiểu lên iOS 10 ngoại trừ Analytics, hiện là iOS 9 ( # 4847 ).
  • Thay đổi đột phá: Đã cập nhật phiên bản macOS tối thiểu lên 10.12.
  • Thay đổi đột phá: Các nhóm được phát triển trong repo này không còn được mã hóa cứng để được xây dựng như các khung tĩnh. Thay vào đó, liên kết của chúng sẽ được kiểm soát bởi Podfile. Sử dụng tùy chọn use_frameworks! :linkage => :static để nhận hành vi liên kết Firebase 6.x. Xem hướng dẫn liên kết này để biết chi tiết về chế độ ( # 2022 ).
  • Thay đổi đột phá: Phiên bản hiện phải được chỉ định cho hai Firebase CocoaPod chỉ dành cho Swift trong Podfile như pod 'FirebaseFirestoreSwift', '~> 7.0-beta' .
  • Firebase hiện yêu cầu phiên bản CocoaPods tối thiểu là 1.9.0.
  • Đã thêm hỗ trợ Trình quản lý gói Swift cho Nhắn tin Firebase ( # 5641 ).
  • Đã thêm hỗ trợ Trình quản lý gói Swift cho các mục tiêu watchOS Auth, Crashlytics, Messaging và Storage ( # 6584 ).
  • Firebase không còn sử dụng tính năng CocoaPods private_headers để hiển thị các API nội bộ ( # 6572 ).
  • Đã xóa trình khởi tạo FirebaseOptions() bị hỏng. Thay vào đó hãy sử dụng init(contentsOfFile:) init(googleAppID:gcmSenderID:) init(contentsOfFile:) hoặc init(googleAppID:gcmSenderID:) ( # 6633 ).
  • Tất cả các nhóm Firebase hiện có cùng một phiên bản ( # 6295 ).
  • Trong CocoaPods, các bản beta của Firebase hiện được chỉ định trong thẻ phiên bản. Trong Trình quản lý gói Swift, bản beta được thêm vào tên sản phẩm.
  • Đã thêm chức năng toàn cầu FirebaseVersion() (hoặc FIRFirebaseVersion() cho người dùng FIRFirebaseVersion() ) để truy cập phiên bản cài đặt Firebase.

Thử nghiệm A / B

  • Đã xóa FIRExperimentController.updateExperiments(serviceOrigin:events:policy:lastStartTime:payloads:) , không được dùng nữa ( # 6543 ).

Phân phối ứng dụng

  • Đã cập nhật nhật ký lỗi cho các cuộc gọi dịch vụ API không phải 200.

phân tích

  • Đã thêm hỗ trợ cho chế độ đồng ý.
  • Đã cập nhật phiên bản iOS tối thiểu lên 9.0.
  • Đã đánh dấu Analytics.init() là không khả dụng.
  • Đã đánh dấu Analytics.appInstanceID() là nullable.
  • Đã thêm các tên sự kiện sau làm dành riêng:
    • ad_reward
    • app_background
    • app_exception
    • app_store_refund
    • app_store_subscription_cancel
    • app_store_subscription_convert
    • app_store_subscription_renew
    • app_upgrade
    • dynamic_link_app_open
    • dynamic_link_app_update
    • dynamic_link_first_open
    • first_visit
    • session_start_with_rollout
  • Các tên sự kiện sau không còn được bảo lưu:
    • app_uninstall
    • screen_view

Xác thực

  • Đã xóa các API không dùng nữa dataForKey , fetchProvidersForEmail:completion , signInAndRetrieveDataWithCredential:completion , reauthenticateAndRetrieveDataWithCredential:completion , linkAndRetrieveDataWithCredential:completion ( # 6607 ).
  • Đã thêm hỗ trợ giả lập ( # 6624 ).
  • Đã xóa các biến toàn cầu FirebaseAuthVersionNumFirebaseAuthVersionStr . Thay vào đó, nên sử dụng FirebaseVersion() hoặc FIRFirebaseVersion() .

Crashlytics

  • Cải thiện tốc độ chuyển đổi ký hiệu tải lên. Những khách hàng có dSYM lớn sẽ thấy sự cải thiện đáng kể về thời gian tải các biểu tượng Crashlytics lên.
  • Đã khắc phục sự cố watchOS liên quan đến sigaction ( # 6434 ).

Cơ sở dữ liệu thời gian thực

  • Đã tắt cảnh báo không dùng nữa ( # 6502 ).
  • Đã cập nhật các phần phụ thuộc để duy trì khả năng tương thích với Firebase 7.

Cloud Firestore

  • Thay đổi areTimestampsInSnapshotsEnabled : Đã xóa cài đặt areTimestampsInSnapshotsEnabled . Các trường dấu thời gian đọc từ FIRDocumentSnapshot giờ đây luôn trả về các đối tượng FIRTimestamp . Sử dụng FIRTimestamp.dateValue để chuyển đổi sang NSDate nếu cần.
  • Đã khắc phục sự cố rò rỉ bộ nhớ được giới thiệu trong 1.18.0 có thể xuất hiện khi tuần tự hóa các truy vấn có chứa so sánh bình đẳng hoặc không bình đẳng.

Nhắn tin trong ứng dụng Firebase

  • Đã xóa các phần tử không dùng nữa của API nhắn tin trong ứng dụng.

Cài đặt

  • Đã xóa biến toàn cầu FIRInstallationsVersionStr . Thay vào đó nên sử dụng FirebaseVersion() hoặc FIRFirebaseVersion() .
  • Cài đặt tại ném một ngoại lệ nếu FIROptions.projectID bị thiếu hoặc FIROptions.APIKey có định dạng không đúng để bắt các vấn đề cấu hình quan trọng trước đó ( # 4692 ).
  • Loại bỏ các FIR tiền tố từ FIRInstallationIDDidChange và đổi tên kFIRInstallationIDDidChangeNotificationAppNameKey để InstallationIDDidChangeAppNameKey trong Swift.
  • Tài liệu API được cập nhật để sử dụng thuật ngữ "mã thông báo xác thực cài đặt" một cách nhất quán ( # 6014 ).

InstanceID

  • -[FIRInstanceID appInstanceID:] tư không được chấp nhận -[FIRInstanceID appInstanceID:] Phương thức -[FIRInstanceID appInstanceID:] đã bị xóa ( # 4486 ).
  • Đã khắc phục sự cố trong đó mã thông báo APN không được gửi trong yêu cầu mã thông báo khi quá trình tìm nạp mã thông báo APN của iOS bị trì hoãn ( # 6553 ).

FCM

  • Đã xóa API kênh trực tiếp FCM không dùng nữa và API gửi luồng lên ( # 6430 ).
  • Thông messaging:didReceiveRegistrationToken: có thể trả về một mã thông báo null. Đã cập nhật thông số API fcmToken thành nullable ( # 5339 ).
  • Đã khắc phục sự cố tải xuống hình ảnh không thành công khi không có phần mở rộng trong tên tệp nhưng loại MIME được đặt ( # 6590 ).

Firebase ML

  • Đã cập nhật các phần phụ thuộc để duy trì khả năng tương thích với Firebase 7.

Giám sát hiệu suất

  • Đã khắc phục sự cố liên quan đến sự cố trên một loại yêu cầu mạng cụ thể # 6713 .
  • Đã khắc phục sự cố liên quan đến tình trạng cuộc đua trên Khởi tạo cấu hình từ xa Firebase # 6287 .

Cấu hình từ xa

  • Đã cập nhật trường lastFetchTime thành chỉ đọc ( # 6567 ).
  • Thay đổi trung lập về mặt chức năng để ngừng sử dụng phương pháp không được dùng nữa trong API thử nghiệm A / B ( # 6543 ).
  • Đã cập nhật số numberValue không bằng giá trị để phù hợp với hành vi hiện tại ( # 6623 ).
  • API không loại bỏ isDeveloperModeEnabled , initWithDeveloperModeEnabled:developerModeEnabled , activateWithCompletionHandler:completionHandler , activateFetched , configValueForKey:namespace , configValueForKey:namespace:source , allKeysFromSource:namespace , keysWithPrefix:namespace , setDefaults:namespace , setDefaultsFromPlistFileName:namespace , defaultValueForKey:namespace ( # 6637 ).
  • Trình xử lý hoàn thành cho fetchAndActivateWithCompletionHandler hiện được chạy trên chuỗi chính ( # 5897 ).
  • Đã sửa lỗi tạo cơ sở dữ liệu trên tvOS ( # 6612 ).
  • Đã cập nhật tài liệu API công khai để không còn tham chiếu đến các API đã bị xóa ( # 6641 ).
  • Đã cập nhật activateWithCompletion: hoạtWithCompletion activateWithCompletion: để sử dụng trình xử lý hoàn thành cho các bản cập nhật thử nghiệm ( # 3687 ).

Lưu trữ

  • Đã xóa biến toàn cục FIRStorageVersionString . Thay vào đó, nên sử dụng FirebaseVersion() hoặc FIRFirebaseVersion() .
  • Đã khắc phục sự cố với API danh sách ngăn không cho liệt kê các vị trí có chứa ký tự "+".
  • Đã đổi tên list(withMaxResults:) thành list(maxResults:) trong Swift API.
  • Đã khắc phục sự cố gây ra thời gian chờ lâu hơn dự kiến ​​cho người dùng đã chỉ định thời gian chờ tùy chỉnh.

Phiên bản 6.34.0 phát hành bản vá - ngày 23 tháng 10 năm 2020

Bản phát hành này chỉ có sẵn qua CocoaPods. Các thay đổi trong bản phát hành này sẽ có trong các bản phát hành không bản vá tiếp theo cho tất cả các bản phân phối không phải CocoaPods.

Giám sát hiệu suất

  • Đã khắc phục sự cố xảy ra khi ghi yêu cầu mạng. Bản phát hành này giống với v3.3.0. Chạy pod update để cài đặt FirebasePerformance 3.3.2.
  • Đã hoàn nguyên bản sửa lỗi trong đó các yêu cầu mạng dựa trên URLSharedSession không được theo dõi tự động trong iOS 14.

Phiên bản 6.34.0 phát hành bản vá - ngày 8 tháng 10 năm 2020

Bản phát hành này chỉ có sẵn qua CocoaPods. Các thay đổi trong bản phát hành này sẽ có trong các bản phát hành không bản vá tiếp theo cho tất cả các bản phân phối không phải CocoaPods.

  • Đã sửa lỗi cảnh báo không dùng nữa trong GoogleDataTransport khi nhắm mục tiêu iOS 12 trở lên. Bản sửa lỗi có sẵn trong GoogleDataTransport v7.5.1 ( # 6682 ).

Phiên bản 6.34.0 - ngày 6 tháng 10 năm 2020

  • Đã xóa cảnh báo liên quan đến việc thiếu khung Analytics cho các bản dựng không phải iOS vì khung này không khả dụng trên các nền tảng đó ( # 6500 ).

phân tích

  • Đã thêm hỗ trợ ghi nhật ký số lần hiển thị quảng cáo theo cách thủ công với logEvent(_:parameters:) .

Crashlytics

  • Cải thiện tốc độ chuyển đổi ký hiệu tải lên. Những khách hàng có dSYM lớn sẽ thấy sự cải thiện đáng kể về thời gian tải biểu tượng Crashlytics lên.
  • Đã sửa lỗi Apple Watch liên quan đến sigaction ( # 6434 ).

Cloud Firestore

  • Cải tiến nội bộ cho hỗ trợ C ++ và Unity trong tương lai. Bao gồm một thay đổi đột phá cho Firestore C ++ Alpha SDK, nhưng không ảnh hưởng đến người dùng Objective-C hoặc Swift.
  • Đã thêm tiêu đề HTTP nội bộ mới vào kết nối gRPC.

Cài đặt

  • Đã thêm xác thực FIRInstallationsItem bổ sung để xử lý các sự cố lưu trữ tiềm ẩn ( # 6570 ).

InstanceID

  • InstanceID không được chấp nhận. Để xử lý danh tính phiên bản ứng dụng, hãy sử dụng FirebaseInstallations. Để xử lý mã thông báo đăng ký FCM, hãy sử dụng FirebaseMessaging ( # 6585 ).

FCM

  • Đã thêm macro để loại bỏ cảnh báo không dùng nữa InstanceID ( # 6585 ).

Giám sát hiệu suất

  • Đã khắc phục sự cố trong đó các yêu cầu mạng dựa trên URLSharedSession không được giám sát tự động trong iOS14.

Cấu hình từ xa

  • Đã sửa lỗi cố attempt to insert nil object sự attempt to insert nil object trong fetchWithExpirationDuration: ( # 6522 ).

Lưu trữ

  • Đã sửa lỗi đánh máy trong nhận xét tài liệu ( # 6485 ).

Phiên bản 6.33.0 - ngày 22 tháng 9 năm 2020

  • Swift Package Manager - Xác định khung hệ thống và các phụ thuộc thư viện hệ thống. Điều này giải quyết các vấn đề ký hiệu không xác định cho các phụ thuộc hệ thống ( # 6408 , # 6413 ).
  • Swift Package Manager - Đã sửa lỗi cảnh báo bản dựng liên quan đến phiên bản iOS tối thiểu ( # 6449 ).
  • Bật hỗ trợ nhóm Firebase cho nền tảng watchOS Auth và Crashlytics ( # 4558 ).
  • Carthage - Một số khung công tác bị thiếu tệp Info.plist ( # 5562 ).

phân tích

  • Đã khắc phục yêu cầu mạng không chủ ý khi thu thập Analytics bị vô hiệu hóa ( # 5837 ).

Phân phối ứng dụng

  • Đã cập nhật nhật ký lỗi cho các lệnh gọi Dịch vụ API không phải 200.

Xác thực

  • Đã sửa lỗi tài liệu nguồn nội bộ ( # 6371 ).

Crashlytics

  • Đã khắc phục sự cố Apple Watch liên quan đến sigaction ( # 6434 ).
  • Đã thay đổi cách sử dụng ID ứng dụng khách trong các lệnh gọi API và kiểm tra tương ứng trong mã.
  • Đã sửa lỗi cố gắng kết nối với miền IPv6 không hợp lệ bằng cách cập nhật IPv4 và IPv6 để sử dụng một điểm cuối hợp lệ, duy nhất ( # 5032 ).

Cloud Firestore

  • Đã thêm toán tử truy vấn whereField(_:notIn:)whereField(_:isNotEqualTo:) . whereField(_:notIn:) tìm tài liệu trong đó giá trị của trường được chỉ định không nằm trong một mảng được chỉ định. whereField(_:isNotEqualTo:) tìm tài liệu trong đó giá trị của trường được chỉ định không bằng giá trị được chỉ định. Không có toán tử truy vấn nào sẽ khớp với các tài liệu không có trường được chỉ định.

Chức năng đám mây

  • Sự phụ thuộc yếu vào ID phiên bản được thay thế bằng Nhắn tin Firebase ( # 6395 ).

InstanceID

  • Đã thêm thông báo mới để lắng nghe làm mới mã thông báo từ Nhắn tin và cập nhật bộ nhớ cache mã thông báo trong InstanceID ( # 6286 ).
  • Đã khắc phục sự cố trong đó thông báo làm mới mã thông báo không được kích hoạt khi sử dụng tokenWithAuthorizedEntity:scope:options:handler để tìm nạp mã thông báo ( # 6286 ).

FCM

  • Đã thêm các API mã thông báo mới để lấy và xóa không đồng bộ mã thông báo đăng ký FCM mặc định. Cũng đã thêm các phương thức Messaging.deleteToken(completion:)Messaging.token(completion:) mới để quản lý mã thông báo đăng ký và dữ liệu đăng ký. Người dùng FCM hiện tại nên thay thế các lệnh gọi InstanceID của họ bằng các phương thức mới để chuẩn bị cho việc ngừng sử dụng InstanceID sắp tới. ( # 6313 ).

Phiên bản 6.32.2 - ngày 14 tháng 9 năm 2020

phân tích

  • Đã cập nhật quyền truy cập vào IDFA dựa trên thông báo của Apple vào ngày chính sách AppTrackingTransparency có hiệu lực.

Phiên bản 6.32.0 - ngày 8 tháng 9 năm 2020

  • Trình quản lý gói Swift - Không còn cần thiết phải chọn các sản phẩm Firebase hoặc FirebaseCore. Mục tiêu xây dựng của họ được chọn ngầm khi chọn bất kỳ sản phẩm Firebase nào khác. Nếu chuyển từ 6.31-spm-beta , bạn có thể cần phải xóa các mục tiêu đó khỏi Frameworks, Libraries, and Embedded Content Cài đặt Xây dựng Frameworks, Libraries, and Embedded Content trên tab Chung.

phân tích

  • Đã giải quyết các vấn đề tiềm ẩn trong việc sử dụng API CFPreferences.
  • Dọn dẹp mã nội bộ.

Phân phối ứng dụng

  • Phiên bản plugin fastlane của App Distribution phiên bản 0.2.0 không còn dựa vào Firebase CLI để xác thực người dùng và yêu cầu. Để biết thêm thông tin, hãy truy cập Phân phối ứng dụng với fastlane .

Xác thực

  • Tài liệu nguồn nội bộ cập nhật ( # 6371 ).

Crashlytics

  • Đã thêm API stackFrameWithAddress để ghi lại các lỗi tùy chỉnh được ký hiệu trên phần phụ trợ ( # 5975 ).
  • Đã sửa lỗi chính tả nhận xét ( # 6363 ).
  • Xóa thông tin thiết bị khỏi các mục nhập thông tin sự cố dữ liệu hình ảnh nhị phân ( # 6382 ).

Cơ sở dữ liệu thời gian thực

  • SDK bây giờ có thể suy ra một URL cơ sở dữ liệu mặc định nếu không có URL nào được cung cấp trong cấu hình.

Cloud Firestore

  • Khắc phục cảnh báo tài liệu gRPC hiển thị trong Xcode ( # 6340 ).

Phiên bản 6.31.1 - 31 tháng 8 năm 2020

Bản phát hành này chỉ có sẵn qua CocoaPods. Các thay đổi được liệt kê trong phần này sẽ có trong các bản phát hành nhị phân tiếp theo.

  • Đã khắc phục sự cố xây dựng biểu tượng FirebaseApp bị thiếu lẻ tẻ được giới thiệu trong Firebase 6.28.0 ( # 6341 ).

Phiên bản 6.31.0 phát hành bản vá - ngày 27 tháng 8 năm 2020

Bản phát hành này chỉ có sẵn qua CocoaPods. Các thay đổi được liệt kê trong phần này sẽ có trong các bản phát hành nhị phân tiếp theo.

Phân phối ứng dụng

  • Đã cập nhật nhận xét tiêu đề ( # 6321 ).
  • Đã sửa lỗi trong đó khách hàng có khóa API bị hạn chế không thể tìm nạp bản phát hành ( # 6346 ).

Phiên bản 6.31.0 - ngày 25 tháng 8 năm 2020

  • Bản phát hành beta của Swift Package Manager. Thông tin chi tiết tại đây . ( # 3136 )
  • Sự phụ thuộc của Firebase vào nanopb được cập nhật từ phiên bản 0.3.9.5 lên phiên bản 0.3.9.6 (1.30906.0 trong CocoaPods).

phân tích

  • Đã thêm hỗ trợ đo lường chuyển đổi first_open cho những người dùng chấp nhận lời nhắc theo dõi ứng dụng iOS 14 của Apple.

Phân phối ứng dụng

  • SDK iOS phân phối ứng dụng hiện đã có ở phiên bản beta. Giờ đây, bạn có thể thêm SDK để bật và tùy chỉnh cảnh báo bản dựng mới trong ứng dụng cho người thử nghiệm của mình. Để biết thêm chi tiết, hãy truy cập Thiết lập cảnh báo trong ứng dụng .

Xác thực

  • Đã thêm hỗ trợ cho nhiều người thuê nhà ( # 6142 ).
  • Đã thêm hỗ trợ watchOS cơ bản ( # 4621 ).
  • Cải thiện quá trình hoàn thành Xcode của trình xử lý hoàn thành API công khai trong Swift ( # 6283 ).

Crashlytics

  • Đã sửa lỗi cảnh báo trình biên dịch và xóa mã mạng không sử dụng ( # 6210 ).
  • Đã khắc phục sự cố hiếm khi xảy ra khi cố gắng khởi động lại tác vụ phiên URL mà không có yêu cầu hợp lệ ( # 5984 ).
  • Đã giới thiệu hỗ trợ watchOS ( # 6262 ).
  • Cơ cấu lại tiêu đề công khai trung lập về mặt chức năng để kích hoạt hỗ trợ Trình quản lý gói Swift.

Cloud Firestore

  • Cải tiến nội bộ cho hỗ trợ C ++ và Unity trong tương lai.

Nhắn tin trong ứng dụng Firebase

  • Bộ tái cấu trúc tiêu đề và nhập trung tính về mặt chức năng để kích hoạt hỗ trợ Trình quản lý gói Swift.

Cài đặt

  • Sử dụng NSURLSession tạm thời để ngăn chặn yêu cầu / phản hồi vào bộ nhớ đệm ( # 6226 ).
  • Đã thêm một số lỗi để ngăn chặn các yêu cầu API không cần thiết ( # 6232 ).

InstanceID

  • Đã thêm thông báo mới để lắng nghe làm mới mã thông báo FCM và cập nhật bộ đệm mã thông báo trong InstanceID ( # 6286 ).
  • Đã khắc phục sự cố trong đó thông báo làm mới mã thông báo sẽ không được kích hoạt khi sử dụng tokenWithAuthorizedEntity:scope:options:handler để tìm nạp mã thông báo ( # 6286 ).

FCM

  • Đã khắc phục sự cố trong đó đăng ký chủ đề không hoạt động trong watchOS ( # 6160 ).
  • Cải thiện quá trình hoàn thành Xcode của trình xử lý hoàn thành API công khai trong Swift ( # 6278 ).

Phiên bản 6.30.0 - 11 tháng 8 năm 2020

  • Cơ cấu lại tiêu đề công khai trung lập về mặt chức năng để chuẩn bị hỗ trợ Trình quản lý gói Swift. Áp dụng cho FirebaseCore, FirebaseABTesting, FirebaseAuth, FirebaseCrashlytics, FirebaseDatabase, FirebaseFirestore, FirebaseFuncitons, FirebaseInstallations, FirebaseRemoteConfig, FirebaseStorage và GoogleDataTransport.

phân tích

  • Đã khắc phục sự cố trong đó cấp nhật ký do FirebaseConfiguration bị ghi đè ( # 5704 ).
  • Dọn dẹp mã nội bộ.

Thử nghiệm A / B

  • Tổ chức lại nguồn trung lập về mặt chức năng để hỗ trợ Trình quản lý gói Swift sơ bộ ( # 6016 ).

Xác thực

  • Sửa lỗi trong đó nhiều mục nhập chuỗi khóa sẽ dẫn đến lỗi liên tục của người dùng ( # 5906 ).
  • Đã thêm hỗ trợ để sử dụng GOOGLE_APP_ID trong luồng dự phòng IDP chung và xác thực điện thoại reCAPTCHA ( # 6121 ).

Crashlytics

  • Đã sửa lỗi phân đoạn có thể xảy ra khi ghi bối cảnh sự cố vào đĩa ( # 6048 ).

Cơ sở dữ liệu thời gian thực

  • Tổ chức lại nguồn trung tính về mặt chức năng ( # 5861 ).
  • Kiểm tra logic bảo vệ kiểm tra liên kết động đang chờ xử lý.

Cloud Firestore

  • Đã sắp xếp lại các tiêu đề công khai để hỗ trợ Trình quản lý gói Swift trong tương lai. Điều này sẽ không ảnh hưởng đến những người dùng hiện có của CocoaPods, Carthage hoặc các bản phân phối tệp zip.

Chức năng đám mây

  • Tổ chức lại nguồn trung tính về mặt chức năng ( # 5858 ).

Cài đặt

  • Tổ chức lại nguồn trung tính về mặt chức năng ( # 5861 ).

Firebase ML

  • Đã cập nhật phần phụ thuộc TensorflowLiteObjC thành 2.3.0 trong FirebaseMLModelInterpreter. Giải quyết ( # 5746 ).

Cấu hình từ xa

  • Đã khắc phục sự cố liên quan đến FirebaseApp.delete() trong tìm nạp cấu hình ( # 6123 ).

Giám sát hiệu suất

  • Đã chuyển tiếp các thay đổi trước đó từ cơ chế điều phối nhật ký sự kiện nội bộ sang GoogleDataTransport sau khi khắc phục sự cố dấu thời gian của ứng dụng khách.
  • Đã cập nhật thông báo Ghi nhật ký cho 'Theo dõi' và 'Yêu cầu mạng' (xem Tài liệu công khai ).
  • Đã giải quyết một vấn đề tồn tại lâu dài khiến theo dõi yêu cầu mạng không được gửi trên Simulator.

Lưu trữ

  • Tổ chức lại nguồn trung tính về mặt chức năng ( # 5861 ).

Phiên bản 6.29.0 - 28 tháng 7 năm 2020

Thử nghiệm A / B

  • Tổ chức lại nguồn trung lập về mặt chức năng để hỗ trợ Trình quản lý gói Swift sơ bộ ( # 6016 ).

phân tích

  • Đã thêm hỗ trợ cho các chế độ xem màn hình ghi nhật ký thủ công với logEvent(_:parameters:) . setScreenName(_:screenClass:) sẽ không được dùng nữa và bị xóa trong một bản phát hành chính trong tương lai.
  • Đã thêm API setDefaultEventParameters để hỗ trợ cài đặt các thông số sẽ được ghi lại trên tất cả các sự kiện.
  • [SKAdNetwork registerAppForAdNetworkAttribution] hiện được tự động gọi vào lần mở đầu tiên theo mặc định. Để chọn không tham gia hành vi mặc định này, hãy thêm khóa GOOGLE_ANALYTICS_REGISTRATION_WITH_AD_NETWORK_ENABLED với giá trị Boolean NO vào tệp Info.plist của ứng dụng.

Xác thực

  • Đã khắc phục sự cố truy cập bộ nhớ đa luồng ( # 5979 ).

Crashlytics

  • Đã sửa lỗi phân đoạn có thể xảy ra khi ghi bối cảnh sự cố vào đĩa ( # 6048 ).

Cloud Firestore

  • Cải tiến nội bộ cho hỗ trợ C ++ và Unity trong tương lai.

Nhắn tin trong ứng dụng Firebase

  • Đã sửa lỗi nhận xét tài liệu không chính xác trong InAppMessagingDisplay ( # 5972 ).
  • Tổ chức lại nguồn trung lập về mặt chức năng để hỗ trợ Trình quản lý gói Swift sơ bộ ( # 6013 ).

InstanceID

  • Xóa FIRInstanceIDURLQueryItem để thay thế NSURLQueryItem ( # 5835 ).

FCM

  • Xóa logic đã được thực thi cho iOS 7 trở xuống ( # 5835 ).

Cấu hình từ xa

  • Tổ chức lại nguồn trung lập về mặt chức năng để hỗ trợ Trình quản lý gói Swift sơ bộ ( # 6013 ).

Phiên bản 6.28.2 - ngày 21 tháng 7 năm 2020

Tệp zip được phát hành có chứa FirebasePerformance 3.2.1.

Phiên bản 6.28.1-hotfix - ngày 20 tháng 7 năm 2020

Người dùng CocoaPods có thể truy cập bản phát hành này bằng cách chạy pod update để cài đặt bản sửa lỗi trong FirebasePerformance 3.2.1. Người dùng tệp zip có thể truy cập bản sửa lỗi với phiên bản 6.28.2.

Giám sát hiệu suất

  • Đã khắc phục sự cố khiến phần lớn sự kiện không được xử lý. Bản phát hành này giống với v3.1.11.

Phiên bản 6.28.1 - ngày 14 tháng 7 năm 2020

Cloud Firestore

  • Đã khắc phục sự cố cấu hình trong đó người nghe không còn được gọi lại trên chuỗi chính theo mặc định.

Phiên bản 6.28.0 - 14 tháng 7 năm 2020

  • Xây dựng với Firebase hiện yêu cầu Xcode 11.3 trở lên. Lưu ý rằng Xcode 11.4 không nên được sử dụng cho các ứng dụng vẫn hỗ trợ thiết bị 32-bit.
  • Đã thêm an toàn luồng vào phương thức [FIROptions defaultOptions] ( # 5915 ).
  • Cập nhật GoogleUtilities và GoogleDataTransport nhập. Phần phụ thuộc GoogleDataTransportCCTSupport sẽ không còn được liên kết với Firebase ( # 5824 ).

Thử nghiệm A / B

  • Đã xóa phần phụ thuộc Protobuf ( # 5890 ).

Xác thực

  • Tổ chức lại nguồn trung lập về mặt chức năng để hỗ trợ Trình quản lý gói Swift sơ bộ ( # 5856 ).

Crashlytics

  • Thêm công văn_once để mở tệp nhật ký sdk ( # 5904 ).
  • Các tham chiếu nhập được cập nhật trung tính về mặt chức năng cho các phần phụ thuộc ( # 5902 ).

Cơ sở dữ liệu thời gian thực

  • Tổ chức lại nguồn trung tính về mặt chức năng ( # 5861 ).
  • Đã khắc phục sự cố xảy ra khi một liên kết động được mở lần thứ hai trong khi một ứng dụng ở nền trước ( # 5880 ).
  • Đã thêm thuộc tính plist FirebaseDeepLinkPasteboardRetrievalEnabled để bật / tắt tìm nạp liên kết động từ Pasteboard.
  • Giảm tần suất thông báo về bảng dán iOS14 bằng cách chỉ đọc từ nó khi nó chứa (các) URL ( # 5905 ).
  • Các tham chiếu nhập được cập nhật trung tính về mặt chức năng cho các phần phụ thuộc ( # 5824 ).

Cloud Firestore

  • Đã xóa độ trễ có thể đã ngăn Firestore thiết lập kết nối mạng ngay lập tức nếu xảy ra thay đổi kết nối trong khi ứng dụng ở chế độ nền ( # 5783 ).
  • Đã khắc phục sự cố hiếm gặp có thể xảy ra nếu quá trình thu thập rác cho các tài liệu cũ trong bộ đệm ẩn tình cờ chạy trong quá trình nén LevelDB ( # 5881 ).

Chức năng đám mây

  • Tổ chức lại nguồn trung tính về mặt chức năng ( # 5858 ).

Nhắn tin trong ứng dụng Firebase

  • Đã sửa lỗi nhận xét tài liệu không chính xác trong InAppMessagingDisplay ( # 5972 ).

Cài đặt

  • Tổ chức lại nguồn trung tính về mặt chức năng ( # 5832 ).

InstanceID

  • Các tham chiếu nhập được cập nhật trung tính về mặt chức năng cho các phần phụ thuộc ( # 5824 ).

FCM

  • Khắc phục cảnh báo tài liệu bị lộ bởi Xcode 12 ( # 5876 ).
  • Các tham chiếu nhập được cập nhật trung tính về mặt chức năng cho các phần phụ thuộc ( # 5824 ).

Bộ ML dành cho Firebase

  • Đã đánh dấu tất cả các API trên thiết bị là không dùng nữa. Xem hướng dẫn di chuyển tại https://developers.google.com/ml-kit/migration.
  • Đã di chuyển từ FirebaseInstanceID (IID) sang FirebaseInstallations (FIS).

Giám sát hiệu suất

  • Đã di chuyển từ cơ chế điều phối nhật ký sự kiện nội bộ sang GoogleDataTransport .
  • Đã cập nhật thông báo Ghi nhật ký cho 'Theo dõi' và 'Yêu cầu mạng' (xem Tài liệu công khai ).

Cấu hình từ xa

  • Các tham chiếu nhập được cập nhật trung tính về mặt chức năng cho các phần phụ thuộc ( # 5824 ).
  • Đã cập nhật Cấu hình từ xa để sử dụng SDK thử nghiệm A / B không Protobuf ( # 5890 ).

Lưu trữ

  • Thêm lỗi khi cố gắng tải lên thư mục ( # 5750 ).
  • Tổ chức lại nguồn trung tính về mặt chức năng ( # 5851 ).

Phiên bản 6.27.1 - ngày 6 tháng 7 năm 2020

phân tích

  • Đã cập nhật các ký hiệu để không xung đột với những ký hiệu được xác định trong AdSupport.framework ( # 5153 ).
  • Dọn dẹp mã nội bộ.

Phiên bản 6.27.0 - 16 tháng 6 năm 2020

  • Bộ tái cấu trúc trung lập về mặt chức năng để đơn giản hóa việc sử dụng tiêu đề của FirebaseCore và chỉ thay thế các nhóm Interop bằng tiêu đề. Thay đổi này là lý do hầu hết các nhóm Firebase có một bản cập nhật phiên bản nhỏ và tại sao có thể không có ghi chú phát hành cụ thể khác.

phân tích

  • Đã sửa lỗi phát hiện gia hạn đăng ký trùng lặp.

Xác thực

  • Chuẩn hóa tiêu đề nhập FirebaseCore ( # 5758 ).

Crashlytics

  • Chuẩn hóa tiêu đề nhập FirebaseCore ( # 5758 ).

Cơ sở dữ liệu thời gian thực

  • Chuẩn hóa tiêu đề nhập FirebaseCore ( # 5758 ).
  • Đã sửa lỗi kiểm tra liên kết động đang chờ xử lý không mong muốn khi khởi động lại ứng dụng tiếp theo ( # 5665 ).

Cloud Firestore

  • Đã khắc phục sự cố có thể đã ngăn máy khách kết nối với chương trình phụ trợ ngay sau khi người dùng đăng nhập.

Nhắn tin trong ứng dụng Firebase

  • Chuẩn hóa tiêu đề nhập FirebaseCore ( # 5758 ).

Cài đặt

  • Chuẩn hóa tiêu đề nhập FirebaseCore ( # 5758 ).

InstanceID

  • Chuẩn hóa tiêu đề nhập FirebaseCore ( # 5758 ).

FCM

  • Sử dụng UNNotificationRequest để lên lịch thông báo cục bộ cho thông báo múi giờ địa phương cho iOS 10 trở lên. Điều này cũng sẽ khắc phục sự cố trong đó '%' không được hiển thị chính xác trong tiêu đề và nội dung ( # 5667 ).
  • Đã sửa khóa ngôn ngữ Malta để nhắm mục tiêu theo ngôn ngữ ( # 5702 ).

Cấu hình từ xa

  • Đã xóa các typedef khỏi chữ ký phương thức API công khai để cải thiện việc sử dụng API Swift từ Xcode ( # 5748 ).

Lưu trữ

  • Đã khắc phục sự cố khi listAll () được gọi ở vị trí gốc ( # 5772 ).
  • Đã thêm một kiểm tra vào putFile của putFile: để kiểm tra xem fileURL được chuyển vào có fileURL là một thư mục hay không và cung cấp một lỗi rõ ràng nếu nó là ( # 5750 ).

Phiên bản 6.26.0 - ngày 2 tháng 6 năm 2020

  • Cố định FirebaseApp 's bundleID xác minh, cho phép chính xác bundleID trận đấu cho các phần mở rộng ( # 5126 ).

phân tích

  • Đã thêm hỗ trợ cho các giới hạn sản phẩm tăng lên có sẵn trong phiên bản 360 của Google Analytics.
  • Dọn dẹp mã nội bộ.

Crashlytics

  • Đã khắc phục sự cố có thể xảy ra nếu một số trường plist cần thiết để tạo bản ghi Crashlytics bị thiếu trong thời gian chạy. Cũng đã thêm một số ghi nhật ký chẩn đoán để làm cho vấn đề trở nên rõ ràng hơn ( # 5565 ).

Cloud Firestore

  • Cải tiến nội bộ cho hỗ trợ C ++ và Unity trong tương lai. Bao gồm một thay đổi đột phá cho Firestore C ++ Alpha SDK, nhưng không ảnh hưởng đến người dùng Objective-C hoặc Swift.

Nhắn tin trong ứng dụng Firebase

  • Đã sửa lỗi thông báo nhật ký cho kiểm tra nhắn tin trong ứng dụng trên luồng thiết bị ( # 5680 ).

Cài đặt

  • Bộ nhớ chuỗi khóa macOS hiện sử dụng tên Dịch vụ chuỗi khóa (mỗi ứng dụng) duy nhất để tách biệt các mục Chuỗi khóa cho các ứng dụng macOS khác nhau. Lưu ý: Số nhận dạng cài đặt được tạo bởi các phiên bản trước sẽ được đặt lại trên macOS. Điều này có thể ảnh hưởng đến, chẳng hạn như biến thể Thử nghiệm A / B hoặc gỡ lỗi nhắm mục tiêu thiết bị cho Nhắn tin Firebase. Số nhận dạng cài đặt iOS, tvOS và watchOS sẽ không bị ảnh hưởng ( # 5603 ).
  • Thông báo bảng điều khiển lỗi máy chủ dễ đọc hơn ( # 5654 ).
  • Tự động tìm nạp Mã xác thực bị tắt ( # 5656 ).

Bộ ML dành cho Firebase

  • Đã thêm getLatestModelFilePath(_:completion:) vào ModelManager để lấy đường dẫn tệp tuyệt đối trên thiết bị cho mô hình từ xa tùy chỉnh đã tải xuống.

Cấu hình từ xa

  • Đã cập nhật fetchAndActivateWithCompletionHandler: triển khai để kích hoạt không đồng bộ ( # 5617 ).
  • Xóa lớp không xác định bằng cách xóa các tệp nguồn được tạo proto không sử dụng ( # 4334 ).
  • Thêm mô hình một phần URLSession để cho phép thử nghiệm mà không có phần phụ trợ ( # 5633 ).
  • Đã thêm kích hoạt API trả về một lệnh gọi lại với một tham số bool bổ sung cho biết liệu cấu hình có thay đổi hay không. API mới không bị lỗi nếu giao diện điều khiển không thay đổi. API kích hoạt cũ chỉ có thông số lỗi không được dùng nữa và sẽ bị xóa ở bản phát hành chính tiếp theo ( # 3586 ).

Phiên bản 6.25.0 - ngày 19 tháng 5 năm 2020

  • Cố định FirebaseApp 's bundleID xác minh, cho phép chính xác bundleID trận đấu cho các phần mở rộng ( # 5126 ).

phân tích

Cloud Firestore

  • Cải tiến nội bộ cho hỗ trợ C ++ và Unity trong tương lai. Bao gồm một thay đổi đột phá cho Firestore C ++ Alpha SDK, nhưng không ảnh hưởng đến người dùng Objective-C hoặc Swift.

Tiện ích mở rộng Swift

  • Đã đổi tên FirestoreDecodingError.fieldNameConfict sai chính tả thành fieldNameConflict ( # 5520 ).

Nhắn tin trong ứng dụng Firebase

  • Đã khắc phục sự cố trong đó nhấp chuột được tính cho các tin nhắn không có URL hành động ( # 5564 ).

FCM

  • Đã cập nhật trường hợp lỗi với lý do lỗi để cung cấp thêm chi tiết về lỗi ( # 5511 ).

Cấu hình từ xa

  • Đã sửa lỗi trong đó các bản cập nhật cài đặt không được áp dụng trước khi tìm nạp ( # 4740 ).
  • Đã cập nhật tài liệu API công khai cho sự thay đổi 4.4.10 từ FirebaseInstanceID thành FirebaseInstallations ( # 5561 ).

Phiên bản 6.24.0 - ngày 5 tháng 5 năm 2020

  • Đã cập nhật nanopb thành 0.3.9.5 (trên tất cả các nhóm Firebase). Điều này bao gồm bản sửa lỗi cho CVE-2020-5235 . Lưu ý rằng sơ đồ lập phiên bản cho CocoaPod nanopb đã thay đổi; xem podspec nanopb trên GitHub để biết thêm chi tiết ( # 5191 ).

phân tích

Xác thực

  • Di chuyển không sử dụng trường yêu cầu MFA mfa_provider ( # 5397 ).
  • Đã loại bỏ cảnh báo không dùng nữa khi nhắm mục tiêu các phiên bản iOS lên đến iOS 13 ( # 5437 ).

Crashlytics

  • Đã sửa lỗi malloc không được kiểm tra trong Crashlytics ( # 5428 ).
  • Đã sửa lỗi một phiên bản của hành vi không xác định khi tải tệp từ đĩa ( # 5454 ).

Cơ sở dữ liệu thời gian thực

  • Đã sửa lỗi chính tả trong tài liệu ( # 5406 , # 5418 ).

Cloud Firestore

  • Firestore hiện giới hạn số lượng tra cứu tài liệu đồng thời mà nó sẽ thực hiện khi giải quyết các mâu thuẫn trong bộ đệm ẩn cục bộ ( firebase / firebase-js-sdk # 2683 ).
  • Đã nâng cấp gRPC-C ++ lên 1.28.0 ( # 4994 ).
  • Firestore hiện sẽ gửi thông tin xác thực Auth đến Trình mô phỏng Firestore ( # 5072 ).

Nhắn tin trong ứng dụng Firebase

  • Đã khắc phục sự cố trong đó GoogleUtilities không được liệt kê rõ ràng là phụ thuộc ( # 5282 ).

FCM

  • Đã thay đổi vị trí của nguồn trong thư mục FirebaseMessaging để phù hợp với tổ chức kho lưu trữ hiện tại ( # 5476 ).

Cấu hình từ xa

  • Giảm phụ thuộc vào InstanceID. Cấu hình từ xa hiện phụ thuộc trực tiếp vào Cài đặt ( # 5096 ).
  • Cấu hình từ xa hiện bao gồm cả CFBundleStringCFBundleShortVersionString trong các yêu cầu tìm nạp gửi đi.

Phiên bản 6.23.0 - ngày 21 tháng 4 năm 2020

  • Đã sửa lỗi cài đặt Carthage liên quan đến Protobuf.framework . Protobuf.framework hiện có thể cài đặt riêng bằng cách thêm FirebaseProtobufBinary.json vào Cartfile. Chi tiết đầy đủ trong hướng dẫn sử dụng Carthage ( # 5276 ).

phân tích

  • Đã khắc phục sự cố tương thích ngược.
  • Dọn dẹp mã nội bộ.

Xác thực

  • Xử lý lệnh gọi useUserAccessGroup ngay sau khi cấu hình ( # 4175 ).

Crashlytics

  • SDK Firebase Crashlytics hiện đã có sẵn.

Cơ sở dữ liệu thời gian thực

  • Đã thêm ServerValue.increment() để hỗ trợ gia tăng giá trị trường nguyên tử mà không cần giao dịch.

Cloud Firestore

  • Cải tiến nội bộ cho hỗ trợ C ++ và Unity trong tương lai.

Nhắn tin trong ứng dụng Firebase

  • Đã khắc phục sự cố trong đó GoogleUtilities không được liệt kê rõ ràng là phụ thuộc ( # 5282 ).

Cài đặt

  • Bộ nhớ khóa-giá trị của GoogleUtilities khóa được cấu trúc lại thành GoogleUtilities ( # 5329 ).

InstanceID

  • Dọn dẹp nội bộ và xóa thông báo cục bộ lặp lại ( # 5339 ).

FCM

  • Đã khắc phục sự cố khi mã thông báo bị xóa, thông báo làm mới mã thông báo và ủy quyền không được kích hoạt ( # 5338 ).

Lưu trữ

  • Khắc phục một trường hợp hiếm hoi trong đó StorageTask sẽ gọi các lệnh gọi lại hoàn thành của nó nhiều lần ( # 5245 ).

Phiên bản 6.22.0 - ngày 8 tháng 4 năm 2020

  • Đã sửa lỗi cảnh báo tiêu đề ô không bao gồm trong các bản phân phối zip và Carthage được giới thiệu trong Firebase 6.21.0 ( # 5209 ).

phân tích

  • Đã sửa dấu thời gian của sự kiện session_start khi khởi động ấm.
  • Đã khắc phục sự cố trong đó một số sự kiện tự động ngừng ghi nhật ký sau khi gọi resetAnalyticsData .

Crashlytics

  • Tăng thời gian chờ của mạng để tải lên biểu tượng để cải thiện độ tin cậy trên các kết nối internet hạn chế ( # 5228 ).

Cloud Firestore

  • Thay đổi nội bộ.

Firebase In-App Messaging

  • Internal fixes for test apps ( #5171 ).

InstanceID

  • Fixed provisioning profile location for catalyst ( #5048 ).
  • Fixed crash when passing a nil handler to deleteToken request ( #5247 ).
  • Remove obsolete logic to improve performance and reduce keychain operations ( #5211 , #5237 ).

Storage

Swift Extensions

  • Initial public beta release. Extends the Storage Reference API with the Swift Result type for all APIs that return an optional value and optional Error. To use, add pod 'FirebaseStorageSwift' to the Podfile and import FirebaseStorageSwift to the source. Please provide feedback about these new APIs and suggestions about other potential Swift extensions to the Firebase iOS SDK issue tracker .

Version 6.21.0 - March 24, 2020

  • The zip distribution is now comprised of xcframeworks instead of frameworks. This provides a binary distribution for the community supported Firebase for Catalyst. See the zip's README for additional details.

  • The FirebaseCoreDiagnostic.framework in the Carthage distribution now includes an Info.plist ( #4917 ).

  • The arm64e slice is no longer included in the zip distribution's xcframeworks. The slice will be removed from the remaining frameworks in a subsequent release. We will restore it once arm64e is officially supported by Apple.

Analytics

Authentication

  • Internal changes ( #5097 ).
  • Multi-factor authentication is now available in the zip file and Carthage distributions.

Crashlytics

  • Added a new API to record custom exception models and stacktraces to Crashlytics. This is a replacement for the recordCustomException API that existed in the Fabric Crashlytics SDK ( #5055 )
  • Fixed an issue with the sendUnsentReports API where reports wouldn't be uploaded until the method was called twice in specific instances ( #5060 )
  • Changed Crashlytics to use GoogleDataTransport to upload crashes ( #4989 )
  • Changed the origin that Crashlytics uses to register crash events for crash-free users. Ensure you have installed the Firebase SDK for Analytics version 6.3.1 or above ( #5030 )
  • Fixed Catalyst build - removed deprecated unused Apple framework dependencies ( #5139 ).

Firebase In-App Messaging

  • Fixed display issue with banner messages on iPad Pro 11" ( #4714 ).
  • Fixed 400 errors from backend due to a bug in the Instance ID SDK ( #3887 ).
  • Internal change in in-app message A/B test flow ( #5078 ).

Installations

  • Accessing GULHeartbeatDateStorage moved out of main thread ( #5098 ).

Performance Monitoring

  • Added direct dependency to Firebase Installations and removed the dependency on Firebase InstanceID.

Version 6.20.0 - March 12, 2020

This release is only available on CocoaPods. New changes in this release will be available across all distribution channels in Firebase versions 6.21.0 and higher.

Authentication

  • Added support for Multi-factor Authentication ( #4823 ). Note: Multi-factor authentication is currently only available on Google Cloud Identity Platform. Please follow this tutorial to use it in your Firebase projects.

Cloud Firestore

  • Fixed the FirebaseFirestore podspec to properly declare its dependency on the UIKit framework on iOS and tvOS.

Version 6.19.0 - March 10, 2020

  • Added an Apple platform flag (ios/macos/watchos/etc.) to firebaseUserAgent . The information will be used to support product decisions related to Apple platforms, eg prioritizing watchOS support, etc. ( #4939 )

A/B Testing

  • Added completion handler for FIRExperimentController's updateExperimentsWithServiceOrigin method.
  • Deprecated FIRExperimentController.updateExperiments(serviceOrigin:events:policy:lastStartTime:payloads:) .
  • Added FIRExperimentController.validateRunningExperiments(serviceOrigin:runningExperimentPayloads:) , allowing callers to expire experiments that are no longer running.
  • Added FIRExperimentController.activateExperiment(experimentPayload:origin:) , allowing callers to directly activates an experiment.

Analytics

  • Added a warning when logging events with parameters containing Swift values not bridgeable to Objective-C Foundation types.
  • Fixed an issue where Analytics would crash at configuration on iOS 8 if a plist key was missing ( #4957 ).

Crashlytics

  • Changed two endpoints in the Firebase Crashlytics SDK with no expected end-user impact ( #4953 , #4988 ).

Cloud Firestore

  • Firestore should now recover its connection to the server more quickly after returning from the background ( #4905 ).

Firebase In-App Messaging

  • Added SDK support for A/B testing in-app messages.

Remote Config

  • Internal code changes ( #4934 ).

Version 6.18.0 - February 25, 2020

  • Fix Zip Builder module map generation that could cause linker missing symbol errors in the 6.14.0 through 6.16.0 binary release distributions ( #4819 ).

Analytics

  • Firebase InstanceID SDK dependency replaced by Firebase Installations SDK.
  • Fixed value type in keychain ( #4742 ).
  • Fixed race conditions in accessing app instance ID after reset.
  • Retry resetting Analytics data if it does not complete before app termination.
  • Fixed a misuse of dispatch_once .

Cloud Firestore

  • Improved performance of queries with large result sets.

Firebase In-App Messaging

  • Added support for data bundles for in-app messages. Data bundles are additional key-value pairs that can be sent along with an in-app message ( #4922 ).

InstanceID

  • Removed unused files ( #4881 ).

FCM

  • Deprecated FCM direct channel messaging via shouldEstablishDirectChannel . Instead, use APNs for downstream message delivery. Add content_available key to your payload if you want to continue use legacy APIs, but we strongly recommend HTTP v1 API as it provides full APNs support. The deprecated API will be removed in Firebase 7 ( #4710 ).
  • Deprecated upstream messaging API. For realtime updates, use Cloud Firestore, Realtime Database, or other services. The deprecated API will be removed in Firebase 7 ( #4710 ).
  • Use secure coding for Messaging's pending topics ( #3686 ).

Remote Config

  • Fixed a bug ( #4677 , #4734 ) where Remote Config does not work after a restore of a previous backup of the device. ( #4896 ).

Version 6.17.0 - February 11, 2020

Crashlytics

  • Fixed symbol collisions with the legacy Fabric Crashlytics SDK and added a warning not to include both ( #4753 , #4755 ).
  • Added crash prevention checks ( #4661 ).

Cloud Firestore

  • Internal improvements.

InstanceID

  • Instance ID no longer collects logging IDs ( #4444 ).

FCM

  • The pod Firebase/Messaging subspec now supports watchOS ( #4807 ).
  • Fixed FIRMessagingExtensionHelper crashing in unit tests ( #4689 ).
  • Fixed FIRMessagingRmqManager crashing on devices with corrupted messaging database files ( #4771 ).

Remote Config

  • Fixed a crash that could occur when attempting a remote config fetch before a valid Instance ID was available ( #4622 ).
  • Fixed an issue where config fetch would sometimes fail with a duplicate fetch error when no other fetches were in progress ( #3802 ).
  • Fetch calls will now fail if a valid instance ID is not obtained by the Remote Config SDK.

Performance Monitoring

  • Fixed a crash related to fetching cached config values from Remote Config ( #4400 , #4399 ).

Version 6.16.0 - January 28, 2020

  • Minimum required Xcode version changed to 10.3 (was 10.1).

Analytics

  • Resolved a database issue on iOS 12+ if linked with sqlite library versions older than 3.20.0.
  • Improved startup latency.

Crashlytics

  • Fixed VeraCode scanner issues for unchecked error conditions ( #4669 ).

Cloud Firestore

  • Firestore previously required that every document read in a transaction must also be written. This requirement has been removed, and you can now read a document in a transaction without writing to it.
  • Improved the performance of repeatedly executed queries when persistence is enabled. Recently executed queries should see dramatic improvements. This benefit is reduced if changes accumulate while the query is inactive. Queries that use the limit() API may not always benefit, depending on the accumulated changes.
  • Changed the location of Firestore's locally stored data from the Documents folder to Library/Application Support, hiding it from users of apps that share their files with the iOS Files app. Important : After a user's data is migrated, downgrading to an older version of the SDK will cause the user to appear to lose data, since older versions of the SDK can't read data from the new location ( #843 ).

Firebase In-App Messaging

  • Consolidated backend and UI SDKs under FirebaseInAppMessaging . Developers should remove pod Firebase/InAppMessagingDisplay and only use pod Firebase/InAppMessaging in their Podfile.
  • FIRIAMDefaultDisplayImpl is no longer public.
  • FirebaseInAppMessagingDisplay is now deprecated and should be removed from developers' Podfiles.
  • Minimum iOS version is now 9.0.

Version 6.15.1 Patch Release - January 16, 2020

Firebase installations service

  • Throw an exception when there are missing required FirebaseOptions parameters ( APIKey , googleAppID , and projectID ). Please make sure your GoogleServices-Info.plist (or FirebaseOptions if you configure Firebase in code) is up to date. The file and settings can be downloaded from the Firebase Console ( #4683 ).

Version 6.15.0 - January 14, 2020

  • Reorganized directory structure.
  • The following SDKs introduce a new transitive dependency on the Firebase installations API :
    • Analytics
    • Cloud Messaging
    • Remote Config
    • In-App Messaging
    • A/B Testing
    • Performance Monitoring
    • ML Kit
    • Instance ID

The Firebase installations SDK introduces the Firebase installations API . Developers that use API key restrictions may experience blocked requests (https://stackoverflow.com/questions/58495985/). A solution is available here . ( #4533 )

Analytics

  • Updated log messages to be less verbose.
  • Fixed issues due to reference to self in async blocks.

Authentication

  • Added support of UISceneDelegate for URL redirect. ( #4380 )
  • Fixed rawNonce in encoder. ( #4337 )

Crashlytics

This Firebase Crashlytics version includes the initial beta release of the Firebase Crashlytics SDK:

  • The SDK is now open-sourced. Take a look in our GitHub repository .
  • Added support for Catalyst (note that Crashlytics still supports tvOS and macOS).
  • Added new APIs that are more consistent with other Firebase SDKs and more intuitive to use. The new APIs also give your users more control over how you collect their data.
  • Removed the Fabric API Key. Now, Crashlytics uses the GoogleService-Info.plist file to associate your app with your project. If you linked your app from Fabric and want to upgrade to the new SDK, remove the Fabric API key from your run and upload-symbols scripts. We also recommend removing the Fabric section from your app's Info.plist (when you upgrade, Crashlytics uses the new configuration you set up in Firebase).

Cloud Firestore

  • Added a limit(toLast:) query operator, which returns the last matching documents up to the given limit.

Firebase In-App Messaging

  • Issues with nullability in card message ( #4435 ).
  • Unit test failure with OCMock 3.5.0 ( #4420 ).
  • Crash in test on device error flow ( #4446 ).

InstanceID

  • Added watchOS support for InstanceID ( #4016 )
  • Added a new dependency on the Firebase Installations SDK. The Firebase Installations SDK introduces the Firebase Installations API . Developers that use API-restrictions for their API-Keys may experience blocked requests (https://stackoverflow.com/questions/58495985/). A solution is available here . ( #4533 )

Firebase installations service

  • Firebase installations service is an infrastructure service for Firebase services that creates unique identifiers and authentication tokens for Firebase clients (called "Firebase installations") enabling Firebase Targeting, ie interoperation between Firebase services.
  • The Firebase installations SDK introduces the Firebase installations API. Developers that use API key restrictions may experience blocked requests (https://stackoverflow.com/questions/58495985/). This problem can be mitigated by following the instructions found here .

FCM

  • Added watchOS community support for Firebase Messaging. This enables FCM push notification function on watch only app or independent watch app. ( #4016 )
  • Added a new transitive dependency on the Firebase Installations SDK. The Firebase Installations SDK introduces the Firebase Installations API . Developers that use API-restrictions for their API-Keys may experience blocked requests (https://stackoverflow.com/questions/58495985/). A solution is available here .

Performance Monitoring

  • Update to the newer version of FirebaseInstanceId SDK that uses FirebaseInstallationService.

Realtime Database

  • Addressed a performance regression introduced in 6.1.3.

Storage

  • Reorganized directory structure ( #4573 ).

Version 6.14.0 - December 17, 2019

  • Updated the binary distributions to include arm64e slices. See Apple's documentation for more details. Support for the open source libraries is now included in the zip and Carthage distributions. All libraries now support building for arm64e except the MLKit ones, for which support is TBD ( #4110 ).
  • The directory structure of the zip distribution has changed to include the full name of each Firebase pod in the directory structure. For example, the former Storage directory is now FirebaseStorage .\
  • Speed up initialization by lazily registering for the user agent ( #1306 ).
  • Added a Swift usage flag to firebaseUserAgent . The information will be used to support product decisions related to Swift, eg adding a Swift-specific API, SDKs, etc. ( #4448 ).

Analytics

  • Fixed issue with custom app events not being passed to FirebaseInAppMessaging when GoogleTagManager is also present ( #4305 ).

Authentication

  • Added support of UISceneDelegate for URL redirect ( #4380 ).
  • Fixed rawNonce in encoder ( #4337 ).

Realtime Database

  • Internal improvements.
  • Fix component startup time ( #4137 ).
  • Fix crash due to object deallocation on app launch ( #4308 ).

Cloud Firestore

  • Internal improvements.

Firebase In-App Messaging

  • Issues with nullability in card message ( #4435 ).
  • Unit test failure with OCMock 3.5.0 ( #4420 ).
  • Crash in test on device error flow ( #4446 ).

InstanceID

  • Added heartbeat support for InstanceID ( #4323 ).
  • Fixed the documentations on a few random generation and hash methods to clarify its use case to avoid confusions. ( #4469 , #4444 , #4326 ).

FCM

  • Fix component startup time ( #4137 ).

Performance Monitoring

  • Fixed issue related to app start trace being insanely long. #934
  • Fixed issues related to monitoring NSURLSession based network requests where some of the requests were not monitored after iOS 13.

Remote Config

  • Fix the return status code when app is offline ( #4100 ).
  • Internal code cleanup ( #4297 , #4403 , #4379 ).

Version 6.13.0 Patch Release - November 19, 2019

This release does not include updates to the zip file or Carthage distributions.

Cloud Firestore

  • Firestore no longer loads its TLS certificates from a bundle, which fixes crashes at startup when the bundle can't be loaded. This fixes a specific case where the bundle couldn't be loaded due to non-ASCII characters in the application name. If you're manually tracking dependencies, you can now remove gRPCCertificates-Cpp.bundle from your build ( #3951 ).

Version 6.13.0 - November 14, 2019

  • Updated the Firebase Core minor version to prepare for an upcoming Firebase pod open source.

Analytics

  • Fixed crash after completed in-app purchase ( #4176 ).

Authentication

  • Added support for Sign-in with Apple ( #4183 ).

Cloud Firestore

  • Removed Firestore's dependency on the Protobuf CocoaPod. If you're manually tracking dependencies, you may be able to remove it from your build (note, however, that other Firebase components may still require it).
  • Added a dependency on the abseil CocoaPod. If you're manually tracking dependencies, you need to add it to your build.

FCM

  • Moved message queue delete operation to a serial queue to avoid race conditions in unit tests ( #4236 ).

Performance Monitoring

Remote Config

  • Remote Config no longer re-activates the current config on fetch if it receives no changes from the backend. ( #4260 )

Storage

  • Fixed a -Wunused-property-ivar violation ( #4281 ).

Version 6.12.0 - November 5, 2019

  • The zip file distributions are now built with Xcode 11.0. The zip file distribution no longer support Xcode 10.3 and below. The Carthage distribution is still built with Xcode 10.1 and is planned to update to Xcode 11.0 in the next release. As a workaround for ( #3791 ), Carthage users can integrate GoogleSignIn.framework from the ( zip distribution ).

Analytics

  • Updated podspec to depend on exact nanopb version.

Realtime Database

  • Addressed an issue with NSDecimalNumber case that prevented decimals with high precision to be stored correctly in our persistence layer ( #4108 ).

Cloud Firestore

  • Added whereField(_:in:) and whereField(_:arrayContainsAny:) query operators. whereField(_:in:) finds documents where a specified field's value is IN a specified array. whereField(_:arrayContainsAny:) finds documents where a specified field is an array and contains ANY element of a specified array.
  • Firestore SDK now uses Nanopb rather than the Objective-C Protobuf library for parsing protos. This change does not affect visible behavior of the SDK in any way. While we don't anticipate any issues, please report any issues with network behavior or persistence that you experience.

InstanceID

  • Fixed a crash in checkTokenRefreshPolicyWithIID: and ensure tokenWithAuthorizedEntity:scope:options:handler method is refreshing token if token is stale ( #4167 ).
  • Updated deprecated keychain access level ( #4172 ).

FCM

  • Moved reliable message queue database operation off main thread ( #4053 ).

Remote Config

  • Minor internal project structure changes.

Performance Monitoring

  • Internal SDK enhancements.

Version 6.11.0 - October 22, 2019

  • Fix container instantiation timing, IID startup ( #4030 ).
  • Open-sourced Firebase pod. This enables import Firebase module support for tvOS and macOS ( #4021 ).

Authentication

  • Removed usage of a deprecated property on iOS 13 ( #4066 ).

Cloud Firestore

  • Fix a race condition that could cause a segmentation fault during client initialization ( #4091 ).

Swift Extensions

  • Initial public release.

InstanceID

  • Fixed InstanceID initialization timing issue ( #4030 ).
  • Added check to see if token and IID are inconsistent ( #4025 ).
  • Removed migration logic from document folder to application folder ( #4033 ).

FCM

  • Fixed IID and Messaging container instantiation timing issue ( #4030 ).
  • Internal cleanup and remove migration logic from document folder to application folder ( #4033 , #4045 ).

Remote Config

  • Removed existing usage of an internal deprecated API ( #3993 ).

Version 6.10.0 - October 8, 2019

  • Transitive GoogleDataTransport dependency incremented to v2.0.0 ( #3729 ).
  • Fixed "expiclitlySet" typo ( #3853 ).

A/B Testing

  • Fixed an Analyzer issue ( #3622 ).

Analytics

  • Fixed potential crash due to debug assertion when Analytics starts.
  • Fixed race condition that prevented upload from completing while app was in the background.

Authentication

  • Added methods allowing developers to link and reauthenticate with federated providers. ( #3971 )

Realtime Database

  • Fixed an iOS 13 crash that occurred in our WebSocket error handling. ( #3950 )

Cloud Firestore

  • Added an addSnapshotsInSyncListener() method to FIRFirestore that notifies you when all your snapshot listeners are in sync with each other.

Firebase In-App Messaging

  • Added support for UIScene-based application lifecycle ( #3927 ).
  • Fixed storyboard layout error in Xcode 11 ( #3748 ).

FCM

  • Updated Protobuf version to fix warnings in Xcode.

ML Kit for Firebase

  • An enhanced version of barcode scanner with better speed and accuracy.
  • Breaking change: Updated ModelManager with the following API changes:
    • Added modelManager(app:) for a custom Firebase app. Note that download management for custom Firebase apps is currently only supported for the Translate SDK.
    • Removed the RemoteModel and LocalModel registration APIs. You no longer need to register models before using them.
    • Added a model download conditions parameter in the download(_:conditions) API to make it easier to tie the conditions to specific download requests. You can fully control when to download a model for the first time and when to check for model updates via this API.
    • Updated isRemoteModelDownloaded(_:) to isModelDownloaded(_:) .
    • Added deleteDownloadedModel(_:completion:) to delete downloaded models to provide you with more flexibility for managing disk space on your user's devices.
    • Removed deleteDownloadedTranslateModel(_:completion)
    • Updated the availableTranslateModelsWithApp(app:) method to a downloadedTranslateModels property.
  • Breaking change: RemoteModel and LocalModel initializers have been disabled. New subclasses have been added for AutoML, Custom, and Translate SDKs. Use the intializers for those subclasses to create instances of remote and local models. initialConditions and updateConditions are no longer needed for initializing a remote model. You can specify the download condition when calling download(_:conditions:) of the ModelManager .
  • Added CustomRemoteModel and CustomLocalModel as instantiable subclasses of RemoteModel and LocalModel classes, respectively.
  • Breaking change: Updated the initializers for ModelInterpreter and removed the ModelOptions class. The ModelInterpreter can be initialized with either a CustomRemoteModel or CustomLocalModel , but not both.
  • Breaking change: Implicit model downloading is no longer available through the ModelInterpreter . You must invoke the ModelManager 's download(_:conditions:) API to download CustomRemoteModel s. Please see the Model Interpreter QuickStart app for an example of how to download CustomRemoteModel s.
  • Added AutoMLRemoteModel and AutoMLLocalModel as instantiable subclasses of RemoteModel and LocalModel classes, respectively.
  • Breaking change: Updated the initializers for VisionOnDeviceAutoMLImageLabelerOptions . The VisionOnDeviceAutoMLImageLabelerOptions can be initialized with either an AutoMLRemoteModel or AutoMLLocalModel , but not both.
  • Breaking change: Implicit model downloading is no longer available through the VisionOnDeviceAutoMLImageLabeler . You must invoke the ModelManager 's download(_:conditions:) API to download AutoMLRemoteModel s. Please see the Vision QuickStart app for an example of how to download AutoMLRemoteModel s.
  • Breaking change: Updated the initializers for TranslateRemoteModel . A TranslateRemoteModel can only be initialized with a TranslateLanguage . Download conditions are now passed to ModelManager 's download(_:conditions:) API, and custom Firebase apps are supported through ModelManager 's modelManager(app:) API.
  • Breaking change: On-device text recognition API for iOS no longer supports i386 architecture, but continues to support x86_64, arm64, and armv7 architectures.

Performance Monitoring

  • Fixed issue related to crash when app starts on iOS 13 devices. ( #3929 )
  • Internal SDK enhancements.

Remote Config

  • Fixed issue for outdated values for deleted config keys. ( #3745 ).

Version 6.9.0 - September 23, 2019

  • Transitive GoogleDataTransport dependency incremented to v2.0.0 ( #3729 ).
  • Fixed "expiclitlySet" typo ( #3853 ).

Analytics

  • Fixed crash when updating identifiers from multiple threads ( #2575 ).

Cloud Firestore

  • Fixed a memory access error discovered using the sanitizers in Xcode 11.

FCM

  • Mute FCM deprecated warnings with Xcode 11 and min iOS >= 10 ( #3857 ).

ML Kit for Firebase

  • Fixed an incompatibility issue between Translate and FirebaseMLCommon.

Remote Config

  • Fixed docs issue ( #3846 ).

Version 6.8.1 - September 10, 2019

  • Removed references to UIWebViewDelegate to comply with App Store Submission warning ( #3722 ).

InstanceID

  • Fix private header imports ( #3621 ).

Performance Monitoring

  • Enable app start time measurements for ios 12.4.

Storage

  • Fix crash in FIRStorageUploadTask ( #3750 ).

Version 6.8.0 - September 5, 2019

A/B Testing

  • Fixed an Analyzer issue ( #3622 ).
  • Removed references to UIWebView to comply with App Store Submission warning ( #3722 ).

Cloud Firestore

  • Transactions now perform exponential backoff before retrying. This means transactions on highly contended documents are more likely to succeed.
  • Added a waitForPendingWrites() method to FIRFirestore class which allows users to wait on a promise that resolves when all pending writes are acknowledged by the Firestore backend.
  • Added a terminate() method to FIRFirestore which terminates the instance, releasing any held resources. Once it completes, you can optionally call clearPersistence() to wipe persisted Firestore data from disk.

Firebase In-App Messaging

  • Undeprecated initializer for FIRInAppMessagingAction so it can be used going forward in custom UI display ( #3545 ).

InstanceID

  • Moved two headers from internal to private for Remote Config open sourcing ( #3621 ).

FCM

  • Fixed notification open event is not logged when scheduling a local timezone message ( #3670 , #3638 ).
  • Fixed FirebaseApp.delete() results in unusable Messaging singleton ( #3411 ).

ML Kit for Firebase

  • Updated the TensorFlow Lite dependency from TensorFlowLite 1.13.1 to TensorFlowLiteObjC 1.14.0 for Custom and AutoML SDKs.

Performance Monitoring

  • Updated the dependency on Firebase Remote Config.

Remote Config

  • Initial Open Source ( #3645 ).
  • Community macOS and tvOS support.
  • Catalyst build support.

Version 6.7.1 - August 23, 2019

Cloud Firestore

  • Fixed a crash that would happen when changing networks or going from online to offline ( #3661 ).

Version 6.7.0 - August 21, 2019

  • Added AppKit dependency on macOS and UIKit dependency on iOS and tvOS ( #3459 ).
  • Moved core diagnostics log to app launch when core data collection is enabled ( #3437 ).
  • Open-sourced the Firebase Core Diagnostics SDK ( #3129 ).

A/B Testing

  • Initial Open Source ( #3507 ).

Analytics

  • Added support for monitoring launches of new features via Firebase Remote Config.
  • Fixed a crash regression when event parameter dictionary is mutated while being enumerated ( #3255 ).

Authentication

  • Make sure the first valid auth domain is retrieved ( #3493 ).
  • Add assertion for Facebook generic IDP flow ( #3208 ).
  • Build for Catalyst ( #3549 ).

Realtime Database

  • Fix Catalyst Build issue ( #3512 ).
  • The SDK adds support for the Firebase Database Emulator. To connect to the emulator, specify "http:// /" as your Database URL (via Database.database(url:) ). If you refer to your emulator host by IP rather than by domain name, you may also need to specify a namespace ( "http://<emulator_host>/?ns=<namespace>" ) ( #3491 ).
  • Minor internal refactoring.

Cloud Firestore

  • Internal improvements.

FCM

  • Cleaned up documents, unused macros, and folders ( #3490 , #3537 , #3556 , #3498 ).
  • Updated the header path to pod repo relative ( #3527 ).
  • Fix singleton functionality after a FirebaseApp is deleted and recreated ( #3411 ).

Remote Config

  • Fixed a crash seen by some users. ( #3508 ).
  • Internal changes and stability improvements.

Version 6.6.0 - August 6, 2019

  • Added AppKit dependency on macOS and UIKit dependency on iOS and tvOS ( #3459 ).
  • Added support for Firebase Segmentation ( #3430 ).
  • Moved core diagnostics log to app launch when core data collection is enabled ( #3437 ).
  • Open-sourced the Firebase Core Diagnostics SDK ( #3129 ).

Analytics

  • Added automatic logging of app being sent to the background.
  • Added support for session-scoped audiences.
  • Cleaned up the event parameter names displayed in the debug logs.

Authentication

  • Fixed an issue where unlinking an email auth provider raised an incorrect error stating the account was not linked to an email auth provider ( #3405 ).
  • Renamed internal Keychain classes ( #3473 ).
  • Updated to maintain compatibility with Firebase Core in 6.6.0.

Cloud Firestore

  • Transactions are now more flexible. Some sequences of operations that were previously incorrectly disallowed are now allowed. For example, after reading a document that doesn't exist, you can now set it multiple times successfully in a transaction.

InstanceID

  • Fixed a crash that could occur if InstanceID was shut down when fetching a new instance ID ( #3439 ).

FCM

  • Fix hang when token is not available before topic subscription and unsubscription ( #3438 ).

Performance Monitoring

  • Fixed an issue where NSURLConnection -based network requests made from KVO-d NSOperation s do not complete.
  • Fixed issues where some UIKit methods could be called on the main thread.

Version 6.5.0 - July 18, 2019

  • FirebaseOptions.appGroupID property added to configure the App Group identifier required to share data between the application and the application extensions ( #3293 ).

Analytics

  • Changed ordering of events during startup. Analytics usage is not affected by this change.

Authentication

  • Added a new client error MISSING_CLIENT_IDENTIFIER ( #3341 ).
  • Removed a call to a deprecated logging method ( #3333 ).

Cloud Firestore

  • Fixed an issue where query results were temporarily missing documents that previously had not matched but had been updated to now match the query ( firebase/firebase-android-sdk#155 ).
  • Fixed an internal assertion that was triggered when an update with a FieldValue.serverTimestamp() and an update with a FieldValue.increment() were pending for the same document.
  • Fixed the oldIndex and newIndex values in DocumentChange to actually be NSNotFound when documents are added or removed, respectively ( #3298 ).
  • Failed transactions now return the failure from the last attempt, instead of ABORTED .

Firebase In-App Messaging

  • Fixed issue with messages triggered on app launch not displaying ( #3237 ).
  • Fixed bug with body text color for card messages ( #3286 ).

InstanceID

  • Removed a call to a deprecated logging method ( #3333 ).

Remote Config

  • Fixed a crash seen by some users when initializing Remote Config with Firebase Performance also installed ( #3344 ).

Storage

  • Ensure that users don't accidently invoke Storage() instead of Storage.storage() . If your code calls the constructor of Storage directly, we will throw an assertion failure instead of crashing the process later as the instance is used ( #3282 ).

Version 6.4.0 - July 9, 2019

Analytics

  • Fixed potential crash if the event parameters dictionary is mutated after logging an event ( #3255 ).

Authentication

  • Expose secret of OAuth credential in public header ( #3089 ).
  • Fix a keychain issue where API key is incorrectly set ( #3239 ).

Cloud Firestore

  • Fixed certificate loading for non-CocoaPods builds that may not include bundle identifiers in their frameworks or apps ( #3184 ).

InstanceID

  • Fixed an issue where fetching an instance ID wouldn't invoke the callback handler if the instance ID had not changed. ( #3229 ).

FCM

  • Fix Xcode 11 tvOS build issue ( #3216 ).

ML Kit for Firebase

  • Fixed the known issue of VisionObjectDetector where in streaming mode, if the category of an object changes, the detector assigns it a new tracking ID.
  • Improved detecting small objects with VisionObjectDetector .
  • Breaking change: Removed entityID and label APIs from VisionObject .
  • Natural Language features now use external Protobuf and Google Toolbox for Mac libraries, resulting in reduced binary size.
  • Improved error telemetry for Translate model downloading.
  • Improved handling of invalid inputs in SmartReply.

Performance Monitoring

  • Fixes an iOS 13 beta crash caused by a race condition with Remote Config.

Remote Config

  • Improved shared instance initialization sequence during FirebaseApp.configure() .

Storage

  • Added StorageReference.list() and StorageReference.listAll() , which allows developers to list the files and folders under the given StorageReference.

Version 6.3.0 - June 19, 2019

Analytics

  • Fixed issue with sessions not starting occasionally.
  • Fixed issue with update_with_analytics event parameter having an incorrect value.
  • Fixed issue with first_open_after_install user property having an incorrect value.
  • Updated SQLite usage to pass additional flag to sqlite3_open_v2 and call sqlite3_prepare_v3 for iOS 12+.

Authentication

  • Fixed line limits and linter warnings in public documentation ( #3139 ).

Cloud Firestore

  • Added clearPersistence() , which clears the persistent storage including pending writes and cached documents. This is intended to help write reliable tests ( #449 ).

Firebase In-App Messaging

  • Simplified startup by only scheduling server contact if logs are present ( #3101 ).

InstanceID

  • Added macOS support for InstanceID. ( #2880 ).
  • Corrected timezone proto key. ( #3132 ).

FCM

  • Added macOS support for Messaging. You can now send push notifications to your mac app with Firebase Messaging. ( #2880 ).

Performance Monitoring

  • Make Firebase Performance work with the recent version of Remote Config.
  • Fix the bug where dataCollectionEnabled flag was not honored for out of the box metrics.

Remote Config

  • Async initialization with new API for ensuring initialization completed with completion handler.
  • Support for multiple active instances of Remote Config in the same app (Analytics only supported with default Firebase app instance).
  • New fetchAndActivate API to perform both fetch and activation upon a successful fetch in a single API call with async completion.
  • New 'jsonValue' property in the FIRRemoteConfigValue class for reading value of a param as a JSON value.
  • New properties for setting minimumFetchInterval and fetch timeout in FIRRemoteConfigSettings class.
  • [FIRRemoteConfigSettings initWithDeveloperModeEnabled] is now deprecated. Use minimumFetchInterval or call [FIRRemoteConfig fetchWithExpirationDuration:] to force a fetch to the Remote Config backend.
  • Async activate API with completion handler.
  • All Remote Config API which take an explicit namespace parameter are deprecated.

Version 6.2.0 - June 4, 2019

Authentication

  • Fixed an issue where users could not link email providers via email links. ( #3030 ).

Firebase In-App Messaging

  • Added support for card in-app messages ( #2947 ).
  • Added direct triggering (via FIAM SDK) of in-app messages ( #3081 ).

Cloud Firestore

  • Firestore should now recover its connection to the server more quickly after being on a network suffering from total packet loss ( #2987 ).
  • Changed gRPC-C++ dependency to 0.0.9 which adds support for using it concurrently with the Objective-C gRPC CocoaPod. This fixes certificate errors you might encounter when trying to use Firestore and other Google Cloud Objective-C APIs in the same project.

InstanceID

  • Fixed a crash in token fetching. Removed debug assertion that is only for develop build. ( #3018 ).

ML Kit for Firebase

  • Internal improvements and refactored code.

FCM

  • Disable data protection when opening the Rmq2PeristentStore. ( #2963 ).

Version 6.1.0 - May 21, 2019

  • Allowed FirebaseApp name to accept any alpha-numeric character instead of only ASCII (#2609).

Analytics

  • Fixed issue with custom app events not being passed to other Firebase SDKs.

Authentication

  • Added support of web.app as an auth domain. ( #2959 ).
  • Fixed an issue where the return type of getStoredUserForAccessGroup:error: is nonnull. ( #2879 ).

Cloud Firestore

  • Disabling garbage collection now avoids even scheduling the collection process. This can be used to prevent crashes in the background when using NSFileProtectionComplete. Note that Firestore does not support operating in this mode--nearly all API calls will cause crashes while file protection is enabled. This change just prevents a crash when Firestore is idle. ( #2846 ).

Firebase In-App Messaging

  • We fixed an issue with messages not showing from custom analytics event trigger ( #2981 ).
  • We fixed a crash from sending analytics events with no instance ID ( #2988 ).

InstanceID

  • Fixed a keychain migration crash. ( #2731 ).
  • Fixed a race condition where checkin was deleted before writing during app start, causing notifications to not be delivered correctly. ( #2438 ).
  • Remove reflection call to get checkin info from Firebase Messaging. ( #2825 ).

ML Kit for Firebase

  • Fixed possible out-of-memory error: Updated Translator to release memory for the instance once all references have been removed.
  • Renamed Swift values of TranslateLanguage from uppercase to lowercase, eg from TranslateLanguage.EN to TranslateLanguage.en .

FCM

  • Remove reflection call to get checkin info from Firebase Messaging and calling the private API directly. ( #2825 ).
  • Fix race condition checkin is deleted before writing during app start. This cleans up the corrupted checkin which causes notifications failed to deliver. ( #2438 ).

Version 6.0.0 - May 7, 2019

  • Removed FIRAnalyticsConfiguration APIs. Use the same APIs directly on the FirebaseAnalytics class. ( #2728 ).
  • Added support for CocoaPods 1.7.x :generate_multiple_pod_projects feature. ( #2751 ).
  • Removed runtime warning for missing Analytics in favor of one at build time. ( #2734 ).

Analytics

  • Added support for programmatically indicating that a user's future Analytics data should not be used for personalized advertising.

A/B Testing

  • Removed FIR prefixes from Swift APIs to match the rest of the Firebase SDKs. ( #1779 ).

Authentication

  • Added support for single sign on. ( #2684 ).
  • Deprecated reauthenticateAndRetrieveDataWithCredential:completion: , signInAndRetrieveDataWithCredential:completion: , linkAndRetrieveDataWithCredential:completion: , fetchProvidersForEmail:completion: . ( #2723 ).
  • Removed pendingToken from public API. ( #2676 ).
  • GULAppDelegateSwizzler is used for the app delegate swizzling. ( #2591 ).

Realtime Database

  • Removed the deprecated childByAppendingPath API. ( #2763 ).

Crash Reporting

  • FirebaseCrash was removed from the Firebase pod. It's recommended to upgrade to Firebase Crashlytics .
  • FirebaseAnalytics is no longer a hard dependency in the DynamicLinks pod. If you were installing Dynamic Links via pod 'Firebase/DynamicLinks' , add pod 'Firebase/Analytics' to the Podfile to maintain full Dynamic Links functionality. If you have pod 'Firebase/Core' in the Podfile, no change is necessary. ( #2738 ).
  • Removed deprecated APIs in FDLURLComponents. ( #2768 ).

Cloud Firestore

  • You can now query across all collections in your database with a given collection ID using the Firestore.collectionGroup() method.
  • Added community support for tvOS.

Cloud Functions

  • Updated to depend on the latest FirebaseCore SDK.

Firebase In-App Messaging

  • Updated to depend on the latest FirebaseCore SDK.

InstanceID

  • Remove deprecated token method. Use instanceIDWithHandler: instead. ( #2741 ).
  • Send firebaseUserAgent with a register request. ( #2679 ).

Invites

  • FirebaseInvites was removed from the Firebase pod. Please see this document for more information on how to replace FirebaseInvites using Firebase DynamicLinks in your project.

ML Kit for Firebase

  • Added Translate support for Natural Language.
  • Added support for on-device AutoML Image Labeling using image classification models trained by AutoML on custom images.
  • Added support for on-device Object Detection and Tracking.
  • Added support for initiating the download of a remote model, monitoring download progress, and receiving notifications. To learn more, read ML Kit for Firebase .
  • Upgraded TensorFlowLite dependency from 1.12.0 to 1.13.1.

FCM

  • Removed useMessagingDelegateForDirectChannel property. All direct channels (non-APNS) messages will be handled in FIRMessagingDelegate messaging:didReceiveMessage: . ( #2711 ).
  • Removed deprecated API to connect direct channel. Use shouldEstablishDirectChannel property instead. ( #2717 ).
  • GULAppDelegateSwizzler is used for the app delegate swizzling. ( #2683 ).

Performance Monitoring

Remote Config

  • FirebaseAnalytics is no longer a hard dependency in the RemoteConfig pod. If you were installing Remote Config via pod 'Firebase/RemoteConfig' , add pod 'Firebase/Analytics' to the Podfile to maintain full RemoteConfig functionality. If you have pod 'Firebase/Core' in the Podfile, no change is necessary. No major changes to functionality.

Version 5.20.2 - April 10, 2019

Analytics

  • Fixed an issue with setAnalyticsCollectionEnabled(_:) not persisting properly between app launches.

Version 5.20.1 - March 30, 2019

Cloud Firestore

  • Fixed a use-after-free bug that could be observed when using snapshot listeners on temporary document references ( #2682 ).

Version 5.20.0 - March 29, 2019

  • Avoid using NSRegularExpression in FIRApp.
  • Improve error meessage for invalid app names. ( #2614 ).
  • FIRApp thread safety fixes. ( #2639 ).

Authentication

  • Added support for new error code ERROR_INVALID_PROVIDER_ID . ( #2629 ).

Cloud Firestore

  • Added community support for macOS ( #434 ).
  • Fixed the way gRPC certificates are loaded on macOS ( #2604 ).
  • Fixed an issue where 'matchesShortLinkFormat' was returning true for certain FDL long links. ( #2563 ).

InstanceID

  • We fixed a bug where handlers of instanceIDWithHandler: weren't responding. ( #2445 ).
  • We fixed a race condition where the token kept being refreshed at app start. ( #2438 ).

Version 5.19.0 - March 19, 2019

  • Allow Bundle IDs that have a valid prefix to enable richer extension support. ( #2515 ).
  • Deprecated FIRAnalyticsConfiguration API in favor of new methods on the Analytics SDK. Please call the new APIs directly: Enable/disable Analytics with Analytics.setAnalyticsCollectionEnabled(_) and modify the session timeout interval with Analytics.setSessionTimeoutInterval(_) .

Analytics

  • Added new setAnalyticsCollectionEnabled(_) and setSessionTimeoutInterval(_) APIs. These should be used in place of the AnalyticsConfiguration APIs that were deprecated in FirebaseCore ( #2516 ).

Authentication

  • Deprecated Microsoft and Yahoo OAuth Provider IDs. ( #2517 ).
  • Fixed an issue where an exception was thrown when linking OAuth credentials. ( #2521 ).
  • Fixed an issue where a wrong error was thrown when handling error with FEDERATED_USER_ID_ALREADY_LINKED . ( #2522 ).

Cloud Firestore

  • Added FieldValue.increment() , which can be used in updateData(_:) and setData(_:merge:) to increment or decrement numeric field values safely without transactions.
  • Improved performance when querying over documents that contain subcollections ( #2466 ).
  • Prepared the persistence layer to support collection group queries. While this feature is not yet available, all schema changes are included in this release.
  • Fixed an issue with certain Analytics attribution parameters not being recorded on an app install. ( #2462 ).

Firebase In-App Messaging

  • Fixed a crash that occurred when integrating Firebase In-App Messaging into NativeScript apps.

FCM

  • Added community support for tvOS. ( #2428 ).

InstanceID

  • Community support for tvOS. ( #2428 ).
  • Adding Firebase info to checkin. ( #2509 ).
  • Fixed a crash in FIRInstanceIDCheckinService ( #2548 ).

ML Kit for Firebase

  • Added Smart Reply support for Natural Language. To learn more, read ML Kit for Firebase .
  • Breaking change: Renamed model downloading APIs in FirebaseMLCommon (no change to functionality):
    • Renamed CloudModelSource to RemoteModel and LocalModelSource to LocalModel .
    • Updated ModelManager methods to reflect the renaming of the model classes.
    • Renamed the following properties in ModelDownloadConditions : isWiFiRequired is now allowsCellularAccess and canDownloadInBackground is now allowsBackgroundDownloading .

Performance Monitoring

  • Fixed a crash related to password auto-fill screen ( #2283 , #1986 ).

Realtime Database

  • Fixed crash in FSRWebSocket ( #2485 ).

Storage

  • StorageReference.putFile() now correctly propagates error if file to upload does not exist ( #2458 , #2350 ).

Version 5.18.2 - March 7, 2019

  • Fixed an incomplete modulemap in some frameworks which could lead to linker errors.

Version 5.18.1 - March 7, 2019

InstanceID

  • Properly pushed the open-source version of Firebase InstanceID. ( #186 ). To get this fix, remove the Pods directory or run pod deintegrate before pod update . Also see #2486 .

Version 5.18.0 - March 5, 2019

  • Deprecated setMinimumSessionInterval on AnalyticsConfiguration . ( #2305 ).

Analytics

  • Fixed an issue with background tasks not terminating when the configuration isn't expired even when there isn't any data to upload.

Authentication

  • Add support for Generic IDP. ( #2405 ).

Cloud Firestore

  • Internal improvements to the SDK. These changes do not have any impact on developers using Cloud Firestore.

Cloud Functions

  • Changed the default timeout for callable functions to 70 seconds ( #2329 ).
  • Added a method to change the timeout for a callable ( #2329 ).
  • Added return call validation for sysctlbyname . ( #2394 ).

Firebase In-App Messaging

  • Allow developers to programmatically register a delegate for updates on in-app engagement (impression, click, display errors). ( #2354 ).

InstanceID

  • Open Source Firebase InstanceID. ( #186 ).

FCM

  • Replaced NSUserDefaults with GULUserDefaults to avoid potential crashes. ( #2443 ).

Version 5.17.0 - February 21, 2019

Analytics

  • Sessions start immediately when an engagement occurs.
  • Added support for extending sessions while app is running in the background.

Cloud Firestore

  • Internal improvements to the SDK. These changes do not have any impact on developers using Cloud Firestore.

InstanceID

  • InstanceID now updates keychain access control whenever a new keychain is added, to make sure keychain access won't be blocked when device is locked. ( #1399 ).
  • Fixed an issue where push notification is not working on release builds. ( #2365 ).

FCM

  • Internal code cleanup to improve better unit testing. ( #2250 ).

Version 5.16.0 - January 22, 2019

  • The minimum supported Xcode version is now 9.4.1.
  • Internal change to add a registerInternalLibrary API. Other Firebase libraries can register with FirebaseCore instead of FirebaseCore needing all of its clients' versions built in. Firebase 5.16.0 makes this transition for FirebaseAnalytics , FirebaseAuth , FirebaseDatabase , FirebaseDynamicLinks , FirebaseFirestore , FirebaseFunctions , FirebaseInstanceID , FirebaseMessaging , and FirebaseStorage . This change has no impact on Firebase developers.

InstanceID

  • Moved all keychain write operations off the main thread ( #1399 ).
  • Made keychain operations asynchronous where possible (given the current APIs).
  • Updated the SDK to avoid redundant keychain operations when previously queried and cached.

Cloud Firestore

  • Breaking change: The areTimestampsInSnapshotsEnabled setting is now enabled by default. Timestamp fields that read from a FIRDocumentSnapshot are now returned as FIRTimestamp objects instead of NSDate objects. Update any code that expects to receive a NSDate object. See the reference documentation for more details.
  • Breaking change: FIRTransaction.getDocument() has been changed to return a non-nil FIRDocumentSnapshot with exists equal to false if the document does not exist (instead of returning a nil FIRDocumentSnapshot ). Code that includes if (snapshot) { ... } must be changed to if (snapshot.exists) { ... } .
  • Fixed a crash that could happen when the app is shut down after a write has been sent to the server but before it has been received on a listener ( #2237 ).
  • Firestore no longer bundles a copy of the gRPC certificates, now that the gRPC-C++ CocoaPod includes them. CocoaPods users should be updated automatically. Carthage users should follow the updated instructions to get gRPCCertificates.bundle from the correct location.

ML Kit for Firebase

  • Added support for Natural Language and Language Identification. To learn more, read ML Kit for Firebase .
  • Breaking change: Unified and enhanced on-device and cloud image-labeling API.
  • Added the ModelManager class for downloading and managing custom models from the cloud.
  • Added the CloudModelSource and LocalModelSource classes for defining and registering custom cloud and local models. These classes were previously defined in FirebaseMLModelInterpreter .
  • Defined and registered CloudModelSource and moved the LocalModelSource custom models to FirebaseMLCommon . To use the new API, import the FirebaseMLCommon module.
  • Upgraded the TensorFlowLite dependency from 1.10.1 to 1.12.0.

Version 5.15.0 - December 17, 2018

Authentication

  • Add support for Game Center sign-in ( #2127 ).

Cloud Firestore

  • Offline persistence now properly records schema downgrades. This is a forward-looking change that allows all subsequent versions to safely downgrade to this version. Some other versions might be safe to downgrade to, if you can determine there haven't been any schema migrations between them. For example, downgrading from v0.16.1 to v0.15.0 is safe because there have been no schema changes between these releases.
  • Fixed an issue where gRPC would crash if shut down multiple times ( #2146 ).

Performance Monitoring

  • Resolved an issue that caused crashes in FPRScreenTraceTracker ( #1986 ).
  • Fixed duplicate symbols issue with NearbyMessages CocoaPod ( #2094 ).

Version 5.14.0 - December 4, 2018

Analytics

  • Updated names for certain internal events and parameters.
  • The FirebaseAnalytics CocoaPod corrects its dependency on the GoogleAppMeasurement CocoaPod ( #2151 ).

Authentication

  • Add support for custom FDL domain links ( #2121 ).
  • Introduced a new componentsWithLink:domainURIPrefix: and deprecated the existing componentsWithLink:domain: ( #1962 , #2017 , #2078 , #2097 , #2112 ).

Cloud Firestore

  • Added a garbage collection process to on-disk persistence that removes older documents. This is enabled by default, and the SDK will attempt to periodically clean up older, unused documents once the on-disk cache passes a threshold size (default: 100 MB). This threshold can be configured by setting FIRFirestoreSettings.cacheSizeBytes . It must be set to a minimum of 1 MB. The garbage collection process can be disabled entirely by setting FIRFirestoreSettings.cacheSizeBytes to kFIRFirestoreCacheSizeUnlimited .

Version 5.13.0 - November 20, 2018

Cloud Firestore

  • Changed how the SDK handles locally updated documents while syncing those updates with Cloud Firestore servers. This can lead to slight behavior changes and may affect the SnapshotMetadata.hasPendingWrites metadata flag.
  • Eliminated superfluous update events for locally cached documents that are known to lag behind the server version. Instead, the SDK buffers these events until the client has caught up with the server.
  • Moved from Objective-C gRPC framework to gRPC C++. If you're manually tracking dependencies, the gRPC, gRPC-ProtoRPC, and gRPC-RxLibrary frameworks have been replaced with gRPC-C++. ( #1968 )
  • Delete deprecated source files. ( #2038 )

ML Kit for Firebase

  • Face contour detection will only return contours for the most prominent face.
  • The face-tracking feature is disabled for contour-only detection in .fast mode.
  • Resolved open issues with the FirebaseMLModelInterpreter SDK.

Version 5.12.0 - November 6, 2018

  • Fixed static analysis warning for improper nil comparison. ( #2034 )
  • Assign the default app before posting notifications. ( #2024 )
  • Remove unnecessary notification flag. ( #1993 )
  • Wrap diagnostics notification in collection flag check. ( #1979 )

Authentication

  • Restore SafariServices framework dependency. ( #2002 )

Performance Monitoring

  • Resolved open issues in the Performance Monitoring SDK.

Storage

  • Storage operations can now be scheduled and controlled from any thread ( #1302 , #1388 ).
  • Fixed an issue that prevented uploading of files with semicolons in the filename.

Cloud Firestore

  • Fixed compilation in C99 and C++11 modes without GNU extensions.

Version 5.11.0 - October 24, 2018

Analytics

  • Added support for dynamic audience evaluation.

Cloud Firestore

  • Improvements to the SDK.
  • Updated the SDK to use c99-compatible typeof() operator. ( #1982 )

InstanceID

  • Fixed a crash caused by keychain operation when accessing default access group. ( #1399 , #1393 )

FCM

  • Fixed an issue where messages failed to be delivered to the recipient's time zone. ( #1946 )

Performance Monitoring

  • You can now deep dive into samples of traces and network requests, or Sessions, in the Firebase console.
  • The Performance Monitoring SDK now adds Remote Config as a dependency.

Remote Config

  • Internal updates to support Performance Monitoring.

Version 5.10.0 - October 9, 2018

Cloud Firestore

  • Some SDK errors that represent common mistakes (such as permission denied or a missing index) will automatically be logged as a warning in addition to being surfaced via the API.

FCM

  • Now you can access the message ID of FIRMessagingRemoteMessage object. ( #1861 )
  • Add a new boolean value useFIRMessagingDelegateForDirectMessageDelivery if you want all your direct channel data messages to be delivered in FIRMessagingDelegate . If you don't use the new flag, for iOS 10 and above, direct channel data messages are delivered in FIRMessagingDelegate messaging:didReceiveMessage:; for iOS 9 and below, direct channel data messages are delivered in Apple's AppDelegate application:didReceiveRemoteNotification:fetchCompletionHandler: . So, if you set the useFIRMessagingDelegateForDirectMessageDelivery to true, direct channel data messages are delivered in FIRMessagingDelegate across all iOS versions. ( #1875 )
  • Fixed an issue where callback was not triggered with invalid topic names. ( #1880 )

ML Kit for Firebase

  • Added support for face contour detection.
  • Added synchronous face detection API resultsInImage:error: .
  • Breaking change: Renamed the asynchronous face detection API from detectInImage:completion: to processImage:completion: .
  • Breaking change: Renamed some properties and enums in VisionFaceDetectorOptions .
  • Breaking change: Removed the constant VisionFaceDetectionMinSize in VisionFaceDetectorOptions .
  • Upgraded TensorFlowLite dependency from 0.1.7 to 1.10.1.

Remote Config

  • Fixed open bugs in the Remote Config SDK.

Version 5.9.0 - September 25, 2018

Analytics

  • Fixed duplicate nanopb symbols. ( #1832 )
  • Dynamic Links is now open source and delivered as a source pod. ( #1842 )

Firebase In-App Messaging

  • Released a new open source SDK called FirebaseInAppMessagingDisplay that separates UI functionality out of FirebaseInAppMessaging , enabling custom UI implementations.
  • Respect fetch between wait time returned from API responses.

InstanceID

  • Fixed a crash caused by NSUserDefaults being called on background thread.

Cloud Firestore

  • Fixed an issue where the first get() call made after being offline could incorrectly return cached data without attempting to reach the backend.
  • Changed get() to only make 1 attempt to reach the backend before returning cached data, potentially reducing delays while offline. Previously, it would make 2 attempts, to work around a backend bug.
  • Fixed an issue that caused us to drop empty objects from calls to setData(..., merge:true) .

Version 5.8.1 - September 19, 2018

  • Resolved issue with Firebase/Core dependencies that caused a CocoaPods error. ( #1845 , #8110 )

Version 5.8.0 - September 12, 2018

  • Resolved most of the Xcode Analyzer issues in Firebase sources.

Analytics

  • Resolved open issues with the Analytics SDK.

Cloud Firestore

  • Fixed an issue where the first get() call made after being offline could incorrectly return cached data without attempting to reach the backend.
  • Changed get() to only make 1 attempt to reach the backend before returning cached data, potentially reducing delays while offline. Previously, it would make 2 attempts, to work around a backend bug.

Version 5.7.0 - August 28, 2018

  • Clarified wording in FirebaseAnalytics not available log message. ( #1653 )

FCM

  • Ensure NSUserDefaults is persisted properly before app close. ( #1646 )
  • Internal code cleanup. ( #1666 )

Storage

  • Fixed potential EXC_BAD_ACCESS violation in the internal logic for processing finished downloads. ( #1565 , #1747 )

Cloud Firestore

  • Fixed an issue where changes to custom authentication claims did not take effect until you did a full sign-out and sign-in. ( #1499 )
  • Improved how Firestore handles idle queries to reduce the cost of re-listening within 30 minutes.

AdMob

  • Native ads: GADNativeAppInstallAd , GADNativeContentAd , and associated APIs are deprecated in favor of GADUnifiedNativeAd . See the Native Ads Advanced Unified guide for further instructions on using the new APIs.
  • Native Ads: Added the "Mute This Ad" feature.
  • Native Ads: Fixed a bug where AdChoices view was removed when reusing ad views in collection views.
  • Added the requestConfiguration property to GADMobileAds , which can be used to specify maxAdContentRating and tagForUserOfConsent parameters for all ad requests.
  • Mediation: Added maxAdContentRating and underAgeOfConsent properties to GADMediationAdRequest .

Version 5.6.0 - August 15, 2018

  • The minimum supported Xcode version is now 9.2.

Analytics

  • Fixed memory leaks. ( #1636 )

Crash Reporting

  • Updates to the SDK documentation to reflect deprecation status.

Cloud Firestore

  • Fixed an issue where get(source:.Cache ) could throw an "unrecognized selector" error if the SDK has previously cached the non-existence of the document. ( #1632 )

Firebase In-App Messaging

  • Firebase In-App Messaging is now available in the Firebase SDK for iOS. For more information, see the documentation .

InstanceID

  • Fixed an issue with checkin not caching properly on app start. ( #1561 )

Performance Monitoring

  • Reduced bandwidth consumption used by the SDK.

Version 5.5.0 - August 2, 2018

  • Added a global data collection flag to use when individual product flags are not set. ( #1583 )
  • Renamed the FirebaseNanoPB framework to MeasurementNanoPB . If you use the framework SDK zip, make sure to remove the FirebaseNanoPB framework folder to prevent duplicate symbols.

Analytics

  • Added currency code validation for CURRENCY parameter and numeric value of pre-defined currency-related events.
  • Resolved NSUserDefaults crashes caused by notifications to the system whenever the values were changed and UI updates initiated by the system in the background. ( #1317 and #431 )

Authentication

  • Adds FIRAuthErrorCodeMalformedJWT , which is raised on JWT token parsing failures during auth operations ( #1436 ).

Crash Reporting

  • Added conformance to Firebase global data collection switch.
  • Resolved open issues with Dynamic Links.

InstanceID

  • Added support for global Firebase data collection flag. ( #1219 )
  • Improved message tracking sent by server API.
  • Fixed an issue with InstanceID not properly compiling in app extensions.

FCM

  • Added support for global Firebase data collection flag. ( #1219 )
  • Fixed an issue where FCM wouldn't properly unswizzle swizzled delegate methods. ( #1481 )
  • Resolved an issue with FCM not compiling inside app extensions. ( #1503 )

Performance Monitoring

  • Resolved SDK crashes.
  • Added dependency on open-source version of the GoogleUtilities/Swizzler library.
  • Added conformance to Firebase global data collection switch.

Remote Config

  • Fixed a memory leak bug. ( #488 )

Cloud Firestore

  • Added FieldValue.arrayUnion() and FieldValue.arrayRemove() to atomically add and remove elements from an array field in a document.
  • Added whereField(arrayContains:) query filter to find documents where an array field contains a specific element.
  • Fixed compilation with older Xcode versions ( #1517 ).
  • Fixed a performance issue where large write batches with hundreds of changes would take a long time to read and write and consume excessive memory. Large write batches should now see no penalty.
  • Fixed a performance issue where adding a listener for a large collection (thousands of documents) would take a long time in offline mode ( #1477 ).
  • Fixed an issue that could cause deleted documents to momentarily re-appear in the results of a listener, causing a flicker. ( #1591 )

ML Kit for Firebase

  • This is a breaking change. Unified and enhanced on-device and cloud text recognition API.
  • This is a breaking change. Enhanced cloud document scanning API.

Version 5.4.1 - July 20, 2018

Cloud Firestore

  • Fixed an issue where queries returned fewer results than they should, caused by documents that were cached as deleted when they should not have been. (#1548) .

Version 5.4.0 - June 29, 2018

Authentication

  • Resolved an issue with parsing JWT date timestamps correctly.
  • Fixed an issue where anonymous accounts weren't correctly promoted to non-anonymous when linked with passwordless email auth accounts.
  • Fixed a data race issue caught by the sanitizer.

Cloud Firestore

  • Internal improvements.

Cloud Functions for Firebase Client SDK

  • Add a constructor to set the region.
  • Add a method to set a Cloud Functions emulator origin to use, for testing.

FCM

  • Client now properly suspends topic requests when a token is not available and resumes the topic operation when the token is generated.
  • Corrected the deprecation warning when subscribing to or unsubscribing from an invalid topic.
  • Removed unused heartbeat timestamp tracking.

Realtime Database

  • Fixed undefined behavior sanitizer issues.

Version 5.3.0 - Jun 20, 2018

  • Fixed a thread sanitizer error (#1390).
  • Updated FirebaseCore.podspec so that it works with cocoapods-packager. (#1378).

InstanceID

  • Ensure the checkin and tokens are refreshed if the Firebase project changed.
  • Resolved an issue that required checkin to be turned off when the FCM autoInitEnabled flag is off.

Cloud Firestore

  • setData methods taking mergeFields: arguments can now delete fields using FieldValue.delete() .
  • Firestore will now recover from auth token expiration when the system clock is wrong.
  • Fixed compilation with older Xcode versions (#1366).

ML Kit for Firebase

  • isIdleRequired in ModelDownloadConditions has been renamed to canDownloadInBackground . Its initializer has also been renamed accordingly.
  • Direct initialization of certain detectors and model interpreter is no longer allowed. Related class methods should be used instead.
  • Fixed memory leaks in continuous detection of face, text, barcode, or label.
  • Fixed a crash that returned the following error: "Terminating app due to uncaught exception NSGenericException , reason: 'Completion handler blocks are not supported in background sessions. Use a delegate instead.'"
  • Fixed VisonBarcodeDetector signal SIGABRT while scanning certain QR codes.
  • Keeping a strong reference of VisionTextDetector during detection is no longer necessary.

Performance Monitoring

  • Resolved issue with crashing related to screen traces.
  • Improved SDK startup time.
  • Resolved AVAssetDownloadTask crashes.

Version 5.2.0 - Jun 6, 2018

Authentication

  • Restore 4.x level of support for extensions.

Instance ID

  • Added a new API to fetch InstanceID and Token with a completion handler. The completion handler returns a FIRInstanceIDResult with an instanceID and token properties.
  • Deprecated the token method.
  • Added support to log a new customized label provided by developer.

Cloud Firestore

  • Internal improvements.

FCM

  • Added a warning message when subscribing to topics with incorrect name formats.
  • Silenced a deprecation warning in FIRMessaging.

Version 5.1.0 - May 29, 2018

Analytics

  • Added subscription parameter for autorenewable and non-renewing subscription In-app Purchases.
  • Minor bug fixes.

Realtime Database

  • Minor bug fixes.
  • Fixed issue where opens were double counted when using unique match.

Cloud Firestore

  • Fixed an issue where FirestoreSettings would accept a concurrent dispatch queue, but this configuration would trigger an assertion failure. Passing a concurrent dispatch queue should now work correctly (#988).

FCM

  • Cleaned up some deprecation warnings.

Version 5.0.1 - May 15, 2018

Firebase v5.0.1 contains bugfixes for the Firebase pod and ZIP file.

  • Duplicate symbol issue when building with -all_load .
  • Empty modulemap for SDKs in the ZIP file.

Version 5.0.0 - May 8, 2018

Firebase v5.0.0 removes support for iOS 7 and building with Xcode 7. Please use Xcode 8.0 or later and upgrade your app's minimum target to iOS 8 or above, for example by adding "platform :ios, '8.0' to your Podfile . To see the breakdown of worldwide iOS versions, go to Apple's App Store support page .

Changes related to CocoaPods:

  • Ensure Firebase/Core is included in your Podfile.
  • The minimum CocoaPods version required is now 1.4.0.
  • The Authentication, Realtime Database, Core, Cloud Firestore, Cloud Functions for Firebase Client SDK, FCM, and Storage SDKs are now Source Pods. This means you can directly see the source code in your project and see the full call stack while debugging.

Firebase Core

  • Removed deprecated methods.
  • Removed UIKit import from FIRApp.h.

A/B Testing

  • Firebase A/B Testing is now available for managing your experiments. For more information, see the documentation .

Analytics

  • Minor bug fixes.

Authentication

  • Added support for testing phone number authentication. For more information, see Test with whitelisted phone numbers .
  • Added FIRAuthDataResultCallback , which returns an AuthDataResult object instead of a User object after sign-in. This replaces FIRAuthResultCallback for the following methods: signInWithEmail: , signInwithCredential: , signInAnonymouslyWithCompletion: , and createUserWithEmail: .
  • The following methods have been deprecated: signAndRetrieveDataWithEmail: , signInAndRetrieveDataWithCredential: , and signInAndRetrieveDataAnonymouslyWithCompletion:

Crash Reporting

  • The Crash Reporting APIs are now deprecated. New projects should use the Crashlytics APIs.

Realtime Database

  • Minor bug fixes.
  • The shared instance of FIRDynamicLinks is no longer nullable.
  • Removed deprecated FIRDynamicLinkMatchConfidence property. This is replaced by FIRDLMatchType .

Instance ID

  • Removed deprecated method setAPNSToken:type defined in FIRInstanceID, please use setAPNSToken:type defined in FIRMessaging instead.
  • Removed deprecated enum FIRInstanceIDAPNSTokenType defined in FIRInstanceID, please use FIRMessagingAPNSTokenType defined in FIRMessaging instead.
  • Resolved an issue that FCM scheduled messages were not tracked successfully.

FCM

  • Removed deprecated delegate property remoteMessageDelegate , use delegate instead.
  • Removed deprecated method messaging:didRefreshRegistrationToken: defined in FIRMessagingDelegate protocol, use messaging:didReceiveRegistrationToken: instead.
  • Removed deprecated method applicationReceivedRemoteMessage: defined in FIRMessagingDelegate protocol, use messaging:didReceiveMessage: instead.
  • Resolved an issue that data messages were not tracked successfully.

Performance Monitoring

  • Performance Monitoring has exited beta and is now generally available.
  • Added automatic screen traces to report on screen rendering performance.
  • Added APIs for setting, incrementing, and getting metrics.
  • Deprecated the API to increment and decrement counters, use the new metrics API instead.

Remote Config

  • Changed the designated initializer for FIRRemoteConfigSettings to return a nonnull FIRRemoteConfigSettings object.

Storage

  • Removed downloadURLs property on StorageMetadata. Use StorageReference.downloadURL(completion:) to obtain a current download URL.
  • The maxOperationRetryTime timeout now applies to calls to StorageReference.getMetadata(completion:) and StorageReference.updateMetadata(completion:). These calls previously used the maxDownloadRetryTime and maxUploadRetryTime timeouts.

Cloud Firestore

  • Replaced the DocumentListenOptions object with a simple boolean. Instead of calling addSnapshotListener(options: DocumentListenOptions.includeMetadataChanges(true)) , call addSnapshotListener(includeMetadataChanges:true) .
  • Replaced the QueryListenOptions object with simple booleans. Instead of calling addSnapshotListener(options: QueryListenOptions.includeQueryMetadataChanges(true) .includeDocumentMetadataChanges(true)) , call addSnapshotListener(includeMetadataChanges:true) .
  • QuerySnapshot.documentChanges() is now a method which optionally takes includeMetadataChanges:true . By default, even when listening to a query with includeMetadataChanges:true , metadata-only document changes are suppressed in documentChanges() .
  • Replaced the SetOptions object with a simple boolean. Instead of calling setData(["a": "b"], options: SetOptions.merge()) , call setData(["a": "b"], merge: true) .
  • Replaced the SnapshotOptions object with direct use of the FIRServerTimestampBehavior on DocumentSnapshot . Instead of calling data(SnapshotOptions.serverTimestampBehavior(.estimate)) , call data(serverTimestampBehavior: .estimate) .
  • Added ability to control whether DocumentReference.getDocument() and Query.getDocuments() should fetch from server only, cache only, or attempt server and fall back to the cache (which was the only option previously, and is now the default.)
  • Added new mergeFields:(NSArray<id>*) override for set() which allows merging of a reduced subset of fields.

Cloud Functions for Firebase Client SDK

  • Removed FIR prefix on FIRFunctionsErrorCode in Swift.

ML Kit for Firebase

  • ML Kit for Firebase is now available as a public beta. To learn more, read ML Kit for Firebase .

Known Issues

  • The -all_load option linker option does not work with Firebase 5.0.0.
  • There is an issue preventing the use of bitcode in some of the new ML Kit for Firebase subspecs.

Version 4.13.0 - April 13, 2018

Authentication

  • Resolved a crash which occurred when certain Firebase IDTokens were being parsed.

Analytics

  • Added a new public method resetAnalyticsData to clear all Analytics data as well as reset App Instance ID.
  • Improved In-App Purchase report: Analytics can report accurate discounted price for introductory offer purchases.
  • Other bug fixes.

Version 4.12.0 - April 10, 2018

Authentication

  • Adds getIDTokenResultWithCompletion: and getIDTokenResultForcingRefresh:completion: APIs which call back with an AuthTokenResult object. The Auth token result object contains the ID token JWT string and other properties associated with the token including the decoded available payload claims.
  • Adds the updateCurrentUser:completion: API which sets the currentUser on the calling Auth instance to the provided user object.
  • Adds client-side validation to prevent setting handleCodeInApp to false when performing email-link authentication. If handleCodeInApp is set to false an invalid argument exception is thrown.
  • Adds support for passing the deep link (which is embedded in the sign-in link sent via email) to the signInWithEmail:link:completion: and isSignInWithEmailLink: methods during an email/link sign-in flow.

FCM

  • Added new methods that provide completion handlers for topic subscription and unsubscription.

Performance Monitoring

  • Resolved a crash caused by a multithreading issue.

Remote Config

  • Improved documentation on InstanceIDs for GDPR.

Storage

  • Deprecated downloadURLs property on StorageMetadata . Use StorageReference.downloadURLWithCompletion() to obtain a current download URL.

Cloud Firestore

  • Resolved a regression in the Firebase iOS SDK release 4.11.0 that could cause getDocument() requests made while offline to be delayed by up to 10 seconds rather than returning from cache immediately.
  • Added a new Timestamp class to represent timestamp fields, currently supporting up to microsecond precision. It can be passed to API methods anywhere a system Date is currently accepted. To make DocumentSnapshots read timestamp fields back as Timestamps instead of Dates, you can set the newly added property areTimestampsInSnapshotsEnabled in FirestoreSettings to true . Note that the current behavior (DocumentSnapshots returning system Dates) will be removed in a future release. Using Timestamps avoids rounding errors from the system Date being stored as a floating-point value.

Version 4.11.0 - March 20, 2018

Authentication

  • Adds new API to determine the sign-in methods associated with an email address.
  • Adds new API to allow authentication using only an email link (Passwordless Authentication with email link).

Instance ID

  • Improved documentation on InstanceID usage for GDPR.
  • Improved the keypair handling during GCM to FCM migration. If you are migrating from GCM to FCM, we encourage you to update to this version and above.

Cloud Firestore

  • If the SDK's attempt to connect to the Cloud Firestore backend neither succeeds nor fails within 10 seconds, the SDK will consider itself "offline", causing getDocument() calls to resolve with cached results, rather than continuing to wait.
  • Fixed a race condition after calling enableNetwork() that could result in a "Mutation batchIDs must be acknowledged in order" assertion crash.
  • Fixed undefined symbols in the absl namespace.

Cloud Functions for Firebase Client SDK

Version 4.10.1 - March 9, 2018

Cloud Firestore

  • Fixed a regression in the 4.10.0 Firebase iOS SDK release that prevented the SDK from communicating with the backend until successfully authenticating via Firebase Authentication or after unauthenticating and re-authenticating. All reads and writes were silently executed only locally rather than being sent as unauthenticated requests.

Version 4.10.0 - March 6, 2018

FirebaseCore

  • This release includes updates to several services that address issues with CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF warnings that surface in newer versions of Xcode and CocoaPods.

Analytics

  • Increased user ID max length to 256 characters.
  • Added event names level_start and level_end .
  • Added parameter names level_name and success .
  • Added Audience support for nested event parameters.
  • Added lifetime user engagement user property.
  • Resolved deadlock in Screen View Reporter.

Authentication

  • Addressed CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF warnings that surface in newer versions of Xcode and CocoaPods.
  • Improved FIRUser documentation with clear message explaining when Authentication attempts to validate users and what happens when an invalidated user is detected.

Realtime Database

  • Resolved issue with loss of precision for 64 bit numbers on older 32 bit iOS devices with persistence enabled.
  • Addressed CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF warnings that surface in newer versions of Xcode and CocoaPods.

FCM

  • Improved documentation on the usage of the autoInitEnabled property.

Performance Monitoring

  • Fixed a crash related to redirection requests with AFNetworking .

Storage

  • Addressed CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF warnings that surface in newer versions of Xcode and CocoaPods.

Cloud Firestore

  • When you delete a FirebaseApp , the associated Firestore instances are now also deleted.
  • Fixed race conditions in streams that could be exposed by rapidly toggling the network from enabled to disabled and back or encountering a failure from the server.
  • Addressed CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF warnings that surface in newer versions of Xcode and CocoaPods.

Version 4.9.0 - February 14, 2018

Authentication

  • Added an explicit dependency on CoreGraphics from Firebase Auth.

Instance ID

  • Improved support for language targeting for FCM service. Server updates happen more efficiently when language changes.
  • Improved support for FCM token auto generation enable/disable functions.

FCM

  • Added a new property autoInitEnabled to enable and disable FCM token auto generation.
  • Resolved an issue where notification delivery would fail after changing language settings.

Remote Config

  • Improved support for language targeting. Simplied Chinese (zh_hans) and Traditional Chinese (Taiwan) (zh_TW) language targeting should be more accurate.

Cloud Firestore

  • Fixed a regression in Firebase iOS release 4.8.1 that could in certain cases result in an "OnlineState should not affect limbo documents." assertion crash when the client loses its network connection.
  • It's now possible to pass a nil completion block to WriteBatch.commit .

Version 4.8.2 - January 27, 2018

Analytics

  • Fixed an issue with data collection. We have also removed version 4.8.1 to prevent usage of the SDK with the issue.

Version 4.8.1 - January 18, 2018

Analytics

  • Improved the In-App Purchase report. Analytics can now detect subscription restoration or repurchase and non-consumables and can report auto-renewable and non-renewing subscriptions.

Authentication

  • Resolved a bug where the FIRAuthResult object returned following a phone number authentication always contained a nil FIRAdditionalUserInfo object. Now, the FIRAdditionalUserInfo object is never nil and its newUser field is populated correctly.

Realtime Database

  • Now community-supported on tvOS.
  • Resolved an error where fingerprint match fails for some locales.

Performance Monitoring

  • Fixed several minor bugs.

Remote Config

  • Resolved an issue where throttle rate drops during developer mode.
  • Replaced FIR_SWIFT_NAME with NS_SWIFT_NAME .

Storage

  • Now community-supported on tvOS.

Cloud Firestore

  • Removed the includeMetadataChanges property in FIRDocumentListenOptions to avoid confusion with the factory method of the same name.
  • Added a commit method that takes no completion handler to FIRWriteBatch .
  • Queries can now be created from an NSPredicate .
  • Added SnapshotOptions API to control how DocumentSnapshots return unresolved server timestamps.
  • Added disableNetwork() and enableNetwork() methods to Firestore class, allowing for explicit network management.
  • For non-existing documents, DocumentSnapshot.data() now returns nil instead of throwing an exception. A non-nullable QueryDocumentSnapshot is introduced for Queries to reduce the number of nil-checks in your code.
  • Snapshot listeners (with the includeMetadataChanges option enabled) now receive an event with snapshot.metadata.isFromCache set to true if the SDK loses its connection to the backend. A new event with snapshot.metadata.isFromCache set to false will be raised once the connection is restored and the query is in sync with the backend again.
  • Multiple offline mutations now properly reflected in retrieved documents. Previously, only the last mutation would be visible.
  • Fixed a crash in closeWithFinaleState: that could be triggered by signing out when the app didn't have a network connection.

Version 4.8.0 - December 18, 2017

Realtime Database

  • Internal cleanup in the firebase-ios-sdk repository. Functionality of the Realtime Database SDK is not affected.
  • Resolved race condition that could occur while processing server response(s).

Instance ID

  • Resolved a crash caused by a reflection call during logging.
  • Updated server with the latest parameters and deprecated old ones.

Performance Monitoring

Cloud Firestore

  • Firestore no longer has a direct dependency on FirebaseAuth.
  • Fixed a crash when using path names with international characters with persistence enabled.
  • Addressed race condition during the teardown of idle streams.

Storage

  • Internal cleanup in the firebase-ios-sdk repository. Functionality of the Storage SDK is not affected.

Version 4.7.0 - November 30, 2017

  • Replaced the FIR_SWIFT_NAME macro with NS_SWIFT_NAME .

Authentication

  • Added new APIs that return an AuthDataResult object after successfully creating a user with an email and password, signing in anonymously, signing in with email/password credentials, and signing in with custom tokens. The AuthDataResult object contains the new user and additional information pertaining to the new user.

Realtime Database

  • Addressed a race condition that occurred during initialization of empty snapshots.
  • Added new confidence type property. See FIRDLMatchType (values: Unique, Default, Weak).
  • Updated the self-diagnostic output.

Instance ID

  • Improved identity reset process, ensuring all information is reset during Identity deletion.

Cloud Firestore

  • Improved performance when loading documents that match a query.
  • Updated SDK to cleanly shut down idle write streams.

Performance Monitoring

  • Network requests made using NSURLConnection are now instrumented.
  • Resolved some open issues with Performance Monitoring.
  • Added FirebaseSwizzlingUtilities for optional method swizzling.

Storage

  • Added md5Hash to FIRStorageMetadata .

Version 4.6.0 - November 14, 2017

  • Added -FIRLoggerForceSTDERR launch argument flag to force STDERR output for all Firebase logging.

Analytics

  • Resolved open issues with Google Analytics for Firebase, including a screen-tracking issue that loaded views of unloaded controllers and an issue with calling [UIApplication sharedApplication] from a background queue.

Authentication

  • Improved error handling in both the phone-number linking and reCAPTCHA flows for phone-number sign-in.
  • Resolved issue with users remaining anonymous even after being linked to a phone number.
  • The FDL Builder API now includes a fallback link for users on other platforms.
  • Resolved open issues and improved stability in the Dynamic Links SDK.

Instance ID

  • Made token refresh weekly.
  • Resolved crash that occurred during token operation.

Invites

  • Updated API to properly handle links to an app that is already installed.
  • Resolved crashes that occurred when a selected Invite recipient had an empty name.

Cloud Firestore

  • Firestore now retries requests more often before considering a client offline.
  • You can now use FieldValue.delete() with SetOptions.merge() .

Version 4.5.0 - October 30, 2017

  • iOS 7 support in the Firebase iOS, C++, and Unity SDKs is now deprecated and will be dropped in a future release. Upgrade your apps to target iOS 8 or above. To see the breakdown of worldwide iOS versions, go to Apple's App Store support page .

A/B Testing

  • A/B Testing offers the ability to run experiments from the Firebase console using Remote Config. Learn more about creating experiments with A/B Testing for Remote Config and FCM .

Authentication

  • Resolved open issues with Authentication.

Cloud Firestore

  • Improved validation of nested arrays to allow indirect nesting.

Version 4.4.0 - October 17, 2017

  • Fixed new warnings that appeared in Xcode 9.

Authentication

  • Account creation and last sign-in dates are now provided as user metadata.
  • Invalid users are now automatically signed out earlier.
  • Resolved an issue with ID token listeners not firing in some cases.
  • More descriptive errors for some phone number sign-in error cases.

Realtime Database

  • Resolved warnings for callback types with missing argument specifications in XCode 9.

Cloud Firestore

  • Changed the names for FIRSnapshotMetadata and FIRListenerRegistration to better reflect Swift naming guidelines for the Swift SDK.
  • Fixed retain cycle in FIRDocumentReference getDocumentWithCompletion: .

FCM

  • Improved logging of notification opens, by swizzling additional UNUserNotificationCenterDelegate method.
  • Improved the handling of unimplemented UNUserNotificationCenterDelegate methods , when swizzling is enabled.

Instance ID

  • Improved support for working in shared Keychain environments.

Version 4.3.0 - October 3, 2017

Analytics

  • Resolved open issues with Analytics.

Authentication

  • Resolved a threading issue in phone number auth.

Cloud Firestore

FCM

  • Resolved issues with FCM token associations to APNs device tokens.
  • The FCM direct channel is now properly established on the first start 24 hours after being opened.

Performance Monitoring

  • Added infrastructure to more easily diagnose issues.

Realtime Database

Version 4.2.0 - September 20, 2017

  • Resolved duplicate logging issue in the Xcode console.

AdMob

  • Resolved issue with banner ads loading beyond the viewable area on iOS 11.

Authentication

  • Provided reCAPTCHA as an alternative verification method for phone number auth.

Crash Reporting

  • Optimized power consumption.

Realtime Database

  • Fixed a regression in v4.0.2 that affected the storage location of the offline cache. This caused v4.0.2 to not see data written with previous versions.
  • Fixed a crash in FIRApp deleteApp for apps that did not have active database instances.

Instance ID

  • Resolved a race condition where a token was not being generated on first start when FCM was included and the app didn't register for remote notifications.

FCM

  • Additional error code logging for errors thrown when creating or opening an internal database file.

Performance Monitoring

  • Resolved symbol collisions with GoogleMobileVision.
  • Resolved crash when also using Crittercism.
  • Now enforcing safety limits on the number of events dispatched over a period of time.

Remote Config

  • Resolved an issue with config values not updating correctly when targeted by a user property condition.

Storage

  • Clear custom FIRStorageMetadata by setting individual properties to 'nil'.

Version 4.1.1 - August 30, 2017

AdMob

Authentication

  • Improved comments on some methods in the header files.

Realtime Database

  • If you try to retrieve a Realtime Database instance for a specific FirebaseApp on an app that was deleted, Realtime Database no longer returns a stale instance.
  • For unindexed queries, the error message now references bandwidth usage.

Instance ID

  • Removed a call that blocked the main thread during app startup.

Cloud Messaging

  • Removed logic that saved the SDK version to NSUserDefaults .

Performance Monitoring

  • Resolved open issues with Performance Monitoring.
  • Increased character name limits for traces and counters from 32 to 100. Traces and counters that exceed the name limit are not created.

Version 4.1.0 - August 14, 2017

  • Incorrectly configured bundle IDs now result in error messages instead of info messages.

Analytics

  • Improved startup time.
  • Resolved an issue with campaign reporting that occurred when apps were opened through deep links on cold starts.

Authentication

  • Apps can now handle deep links natively and set language codes, for example, for password reset emails.
  • Users' phone numbers now persist properly on clients.
  • Recovery emails are now reported as the correct action code type.
  • Improved app startup time by moving initialization off of the main thread.
  • Improved error for missing emails during new user creation.
  • Improved logging levels for Firebase Authentication to provide consistency across Firebase iOS products.

Crash Reporting

  • Resolved open issues with Firebase Crash Reporting.

Realtime Database

  • Realtime Database now purges the local cache if it can't be loaded.
  • Removed implicit number-type conversion for some integers that were represented as doubles after round-tripping through the server.
  • Realtime Database no longer crashes when messages are sent to closed WebSocket connections.

Instance ID

  • Token and app identifier are now accessible when the device is locked.
  • InstanceID no longer crashes if the bundle identifier is nil.
  • Fixed a small memory leak that occurred when fetching a new token.
  • Improved and simplified both the token storage system and the queuing system for token fetches and deletes.

Cloud Messaging

  • Fixed an issue where setting shouldEstablishDirectChannel in a background thread was triggering a Main Thread Sanitizer warning in Xcode 9.
  • Included additional error logging for method swizzling.

Remote Config

  • Resolved crashes caused when an app's main bundle ID is missing and added an error notification to alert developers of the issue.

Storage

Version 4.0.4 - July 12, 2017

  • Optimized nanoPB dependency.

Version 4.0.3 - June 29, 2017

  • Resolved warnings in Xcode 9.

AdMob

  • For interstitial ad units served on platforms that opt-out of video ads, the interstitial ads now have an immediate close option, even if an MRAID creative calls the useCustomClose() method.
  • Added text on the debug menu to indicate whether the creative preview or troubleshooting modes are active.

Analytics

  • Fixed issues with automatic screen reporting.

Remote Config

  • A warning now appears if the plist file you set default values from can't be found.

Version 4.0.2 - June 08, 2017

  • Fixed issues with Analytics and Performance Monitoring.

Version 4.0.1 - June 06, 2017

  • Improved diagnostic messages for the Swift SDK.

Performance Monitoring

  • Removed dependency on farmhash to prevent symbol collisions.
  • If an exception is thrown when you create a Trace, the Trace's name will now be printed.

Version 4.0.0 - May 17, 2017

  • FIROptions now has a simpler constructor and mutable properties.

AdMob

  • Removed the in-app purchase ad format.
  • Removed support for the ARMv7s architecture.

Analytics

  • Fixed an issue where user_engagement and session_start events were logged when apps were launched in the background. This addresses the related issues with inflated user engagement and session metrics.

Authentication

  • Added Phone Number Authentication. To learn more, see Authenticate with Firebase on iOS using a Phone Number .
  • Added methods that return additional user data from identity providers if available when authenticating users.
  • Improved session management by automatically refreshing tokens when possible and signing out users if the session is invalid, for example, after the user changes their password or deletes their account from another device.
  • Fixed an issue where reauthentication created new user accounts if the user credential is valid but does not match the currently signed-in user.
  • Switched the ERROR_EMAIL_ALREADY_IN_USE notification to ERROR_ACCOUNT_EXISTS_WITH_DIFFERENT_CREDENTIAL when the email account used in the signInWithCredential() method call is already in use by another account.
  • The FIREmailPasswordAuthProvider() method is now deprecated in favor of the FIREmailAuthProvider() method.
  • The getTokenWithCompletion() method is now deprecated in favor of the getIDTokenWithCompletion() method.

Crash Reporting

  • Added the ability to disable the Crash Reporting SDK by setting the crashCollectionEnabled setting to NO in your app's Info.plist file.

Realtime Database

  • Improved pending link retrieval process, especially when custom URL schemes are not set up correctly.

Cloud Messaging

  • Introduced an improved interface for Swift 3 developers.
  • Added new properties and methods to simplify FCM token management.
  • Added the APNSToken property to simplify APNs token management.
  • Added new delegate method to be notified of FCM token refreshes.
  • Added new shouldEstablishDirectChannel property to simplify connecting directly to FCM.

Performance Monitoring

Remote Config

  • The error message that was generated when getting the InstanceID has been replaced by a debug message.

Version 3.17.0 - April 25, 2017

Analytics

App Indexing

Invites

  • Developers can now create long and short Dynamic Links programmatically with the iOS Builder API .

Version 3.16.0 - April 12, 2017

  • Warnings in Xcode 8.3 no longer appearing (see Analytics).

AdMob

  • Correct ad size is now forwarded to mediation networks for smart banner mediation.

Analytics

  • Compiler warnings about NanoPb in Xcode 8.3 are no longer appearing.

Instance ID

  • Improved token-fetching logic.
  • Improved warnings, error messages, and console logging, including initialization error message.

Invites

  • Improved console logging.
  • Improved Xcode warnings.
  • Added description for FIRDynamicLink object.

Cloud Messaging

  • Custom UNNotificationCenterDelegates are swizzled properly when swizzling is enabled.
  • Resolved issue in iOS 8.0 and 8.1 with scheduled notifications.
  • Improved console logging.

Version 3.15.0 - March 16, 2017

  • Removed dependency on C++ libraries for app builds.

AdMob

  • New openInlineBrowser method in google_mobile_app_ads.js opens URLs in SFSafariViewController .
  • New GADAudioVideoManagerDelegate provides notifications on start and pause/stop in audio and video ad playback.

Invites

  • Fixed a bundling issue that caused validation errors during submission to the App Store.
  • Resolved issue causing crashes on app launch after installation for subset of users.

Version 3.14.0 - February 23, 2017

AdMob

  • Added play , pause and setMute methods to GADVideoController to control video playback.
  • Added new delegate methods to GADVideoControllerDelegate to start, pause, end, mute and unmute video content.
  • Added support for rewarded video mediation adapters to opt into early initialization before an ad request is made.

Remote Config

  • Remote Config gets config results from the default FIRApp configuration when multiple projects are configured.
  • Existing users no longer receive empty config results.

February 15, 2017

  • Added the mutable_content field to FCM API. When set to true , a notification message can be updated on an iOS 10+ client before it is presented to the user using the Notification Service app extension. The mutable_content field in the FCM API corresponds to the mutable-content APNs field.

Version 3.13.0 - February 14, 2017

Analytics

  • Added the ability to log events used to supply referral details of a re-engagement campaign to the FIREventNames header and related parameters to the FIRParameterNames header.
  • Added the ability to get app instance IDs using the +appInstanceID method in the FIRAnalytics class.

Authentication

Realtime Database

  • Added logging when an observeEvent call is rejected due to security rules.

Storage

  • Fixed a crash that occurred when user-provided callbacks had a value of nil .
  • Improved upload performance on devices with intermittent connectivity.
  • Long Dynamic Links can now track Google Analytics campaign ("UTM") parameters for Google Analytics for Firebase events, including dynamic_link_first_open and dynamic_link_app_open .

Version 3.12.0 - January 31, 2017

AdMob

Crash Reporting

  • Improvements to the automation of symbol file uploads.
  • Adjusted the verbosity of messages logged to the console.
  • Improved the reliability of Dynamic Links when opened on iOS 9 and iOS 10 in Facebook, Facebook Messenger, Twitter, Instagram, and Gmail.

SDK Version 3.11.1 - January 17, 2017

  • Reduced the verbosity of events logged by Firebase when using the Xcode debugger.

Remote Config

  • When activateFetched is called when an app starts, it no longer removes cached fetch results.
  • If an app makes multiple fetch requests without calling activateFetched between requests, fetch requests will now cache recent updates from the Remote Config service.

SDK Version 3.11.0 - December 13, 2016

  • Adds the ability to initialize FIRNetwork objects with either a default or custom reachability host.
  • Adds names to background tasks, so they can be more easily debugged in console logs.
  • Properly terminates background logging tasks when the network is slow or unavailable.

AdMob

  • Added a video controller to DFPBannerView objects.
  • The GADNativeExpressAdView , GADNativeContentAd , GADNativeAppInstallAd and GADNativeCustomTemplateAd video-controller properties are now nonnull .

Authentication

  • Adds four new methods that you can use to handle action codes that were delivered to users by email, such as verifying an email address or resetting a password: applyActionCode , checkActionCode , confirmPasswordReset , and verifyPasswordResetCode .
  • With this update, the Firebase SDK no longer applies the keychain workaround introduced in v3.0.5 for the iOS 10.2 simulator. This workaround is not needed because the underlying issue in the simulator has been fixed.
  • Fixes nullability compilation warnings that were raised when using Swift.
  • Improves reporting for errors caused by a missing password.

SDK Version 3.10.0 - November 21, 2016

AdMob

  • In preparation for App Transport Security changes in 2017, apps should use this version of the SDK when building apps for iOS 10, and include both the NSAllowsArbitraryLoadsInWebContent and NSAllowsArbitraryLoads exceptions.
  • Added the GADMediaView property to the GADNativeContentAd and GADNativeCustomTemplateAd classes.

    Analytics

  • Increased the maximum length of event names and parameter names to 40 characters, and the maximum length of string parameter values to 100 characters.

Crash Reporting

  • Improved the automatic upload of symbol files.

Invites

Storage

  • Snapshot data is now always returned from the requested snapshot, instead of the most recent snapshot.
  • Improvements to the ability to pause downloads.

Realtime Database

  • Unified the logging format.

SDK Version 3.9.0 - November 3, 2016

AdMob

  • Changes to the kGADAdSizeFluid constant that determines the width of a banner ad no longer change the frame size of a banner ad.

SDK Version 3.8.0 - October 24, 2016

  • The Firebase SDK for iOS API Reference now includes Swift 3.0 syntax, along with Objective-C syntax.

Analytics

  • Added screen tracking support. Each app's current UIViewController is automatically tracked. The current screen is tracked with the firebase_screen_class parameter with every logged event, which provides valuable context. In addition to automatic screen tracking, you can manually track screens using the FIRAnalytics#setScreenName:screenClass method. This adds the firebase_screen parameter to every event logged while those screens are visible to app users.

Realtime Database

  • Reintroduced the persistenceCacheSizeBytes setting (previously available in the 2.x SDK) to control the disk size of the Firebase offline cache.
  • Use of the updateChildValues() method now only cancels transactions that are directly included in the updated paths (not transactions in adjacent paths). For example, an update at /move for a child node walk will cancel transactions at / , /move , and /move/walk and in any child nodes under /move/walk . But, it will no longer cancel transactions at sibling nodes, such as /move/run .

Storage

  • Fixed an issue that was preventing the upload of files with filenames that contain the plus ( + ) character.
  • Fixed an issue that was causing timeouts for file uploads and downloads to behave incorrectly.

Crash Reporting

  • Added support for Swift 2 and Swift 3.
  • Analytics events are now sent to the Crash Reporting service as part of error reports.
  • Fixed a minor issue with IPv6.

Invites

  • Fixed a minor issue with IPv6.

AdMob

SDK Version 3.7.1 - October 6, 2016

Analytics

  • Fixed an issue that causes a crash for some apps that call FirebaseAnalytics . Stack traces show that the crash occurs in -[FIRAAlarm cancel] .

SDK Version 3.7.0 - October 3, 2016

Analytics

  • Analytics no longer includes the AdSupport framework . To include this framework in your app, you must add it. Note that user properties such as Age, Gender and Interests require this framework.

App Indexing

  • App Indexing has been deprecated in light of recent changes to the app review guidelines for iOS. To index your app for Google search, implement Universal Links .

AdMob

  • Added the GADNativeAdViewAdOptions method to GoogleMobileAds to specify the location of AdChoices in native ads.
  • Fixed a bug that causes a crash for some apps that call GoogleMobileAds . Stack traces show that the crash occurs in GADStringFromCGFloat .

SDK Version 3.6.0 - September 14, 2016

Analytics

  • Existing users who update to Analytics-enabled versions of an app are no longer included in first_open metrics. This correction could cause a drop in first_open metrics.

  • Conversion events are now uploaded within seconds of being logged.

  • Removed the feature that attributed Ads app conversions using the SFSafariViewController class.

Cloud Messaging

  • Added a new API method, -applicationReceivedRemoteMessage: to allow apps to receive data messages from FCM on devices running iOS 10 and greater.

Authentication

  • Improved the behavior of Firebase Authentication when testing apps using the iOS 10 simulator.
  • Fixed an issue with error reporting when a user provides an invalid email address while signing in with an email address and password.

Realtime Database

  • Fixed an issue that caused transactions to fail when executed before the SDK connects to the Firebase Realtime Database service.
  • Fixed a race condition where performing a transaction or adding an event observer immediately after connecting to the Firebase Realtime Database service could cause completion blocks for other operations to not be executed.
  • Fixed an issue affecting apps that use offline disk persistence where large integer values could lose precision after an app restart.

Remote Config

  • Fixed issues that caused a crash when an app attempts multiple concurrent fetch requests.
  • Analytics events are now automatically logged when users open your app, open your app from a Dynamic Link, and open your app for the first time from a Dynamic Link.
  • Dynamic Links no longer use the SFSafariViewController class.
  • Dynamic Links no longer has a dependency on the Core Location framework.

AdMob

  • AdMob no longer has a dependency on the Core Bluetooth , EventKit , and EventKitUI frameworks. Apps no longer need to provide NSBluetoothPeripheralUsageDescription and NSCalendarsUsageDescription keys in their Info.plist file.
  • Removed Mobile Rich-media Ad Interface Definitions (MRAID) 2.0 support for calendars and storing pictures.

SDK Version 3.5.2 - August 26, 2016

AdMob

  • Initial improvements toward fixing a bug that causes a crash for some apps that call GoogleMobileAds . Stack traces show that the crash occurs in GADStringFromCGFloat .

SDK Version 3.5.1 - August 23, 2016

Analytics

  • Added support for Analytics on iOS 10.

  • Added support for attributing AdWords app conversions from search and display web clicks on iOS 10.

  • Added a feature to validate the authenticity of in-app purchase events before they are reported by Google Analytics.

Storage

  • Fixed issues with iOS 7 compatibility.
  • Fixed an issue that prevented observeStatus:FIRStorageUploadTask from correctly reporting progress when uploading a file.

App Indexing

  • Added support for App Indexing on iOS 10. App Indexing still requires iOS 9 or higher.
  • Added support for Dynamic Links on iOS 10.

AdMob

  • When associating native ads with a view, the view's userInteractionEnabled property is changed to NO to match the value expected by the SDK.
  • The Google Mobile Ads SDK now has a dependency on MobileCoreServices .
  • Added the -[GADMobileAds isSDKVersionAtLeastMajor:minor:patch:] API method to allow ad networks to determine if a device is running at least a specified minimum version ( major.minor.patch ) of the Google Mobile Ads SDK.

SDK Version 3.4.0 - August 1, 2016

Authentication

  • Fixed a bug that causes a race condition that could crash an app running on iOS 9 with an exception from NSURLSession .

Cloud Messaging

  • plist files used by FIRMessaging are now stored in an ApplicationSupport directory.

Remote Config

  • Fixed an issue where some attempts to fetch parameter values can cause a crash due to a JSON serialization failure.
  • Added the allKeysWithPrefix: API method to allow developers to find parameter keys based on a key prefix.

Crash Reporting

  • Fixed an error that occurred when building an app that uses a JSON file.
  • Minidumps are now compressed separately to avoid automatically unzipping during processing.
  • Fixed an issue that prevented batch-upload from working with files that contain non-ASCII characters.

App Indexing

  • Bitcode support is now available for the App Indexing SDK for iOS.
  • Fixed a bug that caused crashes when the resolveLink() API returns a non-JSON object.

AdMob

  • Enhanced the quality of ad rendering with the addition of framework dependencies for GLKit, OpenGLES, CoreMotion, and CoreVideo.
  • Added the +[GADMobileAds configureWithApplicationID:] method. AdMob publishers should call this method with their application ID to initialize AdMob.
  • Users of DoubleClick for Publishers (DFP) who use SDK mediation will no longer see the following warning: mediated ad type is unknown or invalid

SDK Version 3.3.0 - June 29, 2016

Analytics

  • You can now attribute AdWords app conversions from search and display web clicks on Safari using SFSafariViewController , an iOS API that supports data sharing between apps and the Safari browser on the same device running iOS 9.0 or higher. This lets you measure app installs and in-app actions from app promotion ads on mobile websites. This functionality is included in the Firebase SDK, and is enabled without any changes to your app's source code.

Authentication

  • The bundle ID custom scheme is no longer required to support Google Sign-In.
  • Minor improvements to error handling and error messages.
  • User anonymity is now handled the same way for iOS as it is for other platforms.

Realtime Database

  • Fixed a rare crash in [FSRWebSocket stream:handleEvent:] .
  • Improved error messages for some common mistakes configuring FIRApp .
  • Firebase now logs a warning instead of throwing an exception when your database has exceeded its concurrency limit.

Cloud Messaging

  • Cloud Messaging no longer registers for remote notifications on startup.

Storage

The Notifications composer

  • You can now add more than three custom data fields when sending a notification. A notification should not exceed 4KB total, including message text, custom data, and any advanced options.
  • Reduced the refresh interval for app versions and language lists.
  • The conversion event counts in the Notifications composer Google Analytics funnel view now show the number of users who have triggered the conversion event at least once. Previously, it showed the raw number of triggered conversion events.
  • Google Analytics now logs all app open events driven from user clicks on Dynamic Links.
  • Including Dynamic Links in your app now adds less than 70K to your app's .ipa file, a reduction of nearly 2 MB from the previous release.