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 SDK JavaScript 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 8.1.1 - ngày 19 tháng 11 năm 2020

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

  • Đã thêm định nghĩa loại bị thiếu cho Query.get() .

Cloud Firestore

  • Đã khắc phục sự cố ngăn experimentalAutoDetectLongPolling động chính xác.

Phiên bản 8.1.0 - ngày 19 tháng 11 năm 2020

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

  • Đã thêm phương thức get truy vấn cơ sở dữ liệu trả về kết quả máy chủ khi được kết nối.

Cloud Firestore

  • Đã khắc phục sự cố hồi quy được giới thiệu trong v8.0.2 trả về giá trị không hợp lệ cho DocumentChange.newIndex . Xem sự cố GitHub # 4071

Phiên bản 8.0.2 - ngày 12 tháng 11 năm 2020

Xác thực

Cloud Firestore

  • Đã khắc phục sự cố khiến các đối tượng DocumentReference trong các bản sao DocumentSnapshot được trả về bằng trình chuyển đổi tùy chỉnh của DocumentReference ban đầu.

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

Nhắn tin qua đám mây

  • Đã khắc phục sự cố trong đó cảnh báo đẩy im lặng được hiển thị cùng với thông báo được hiển thị bởi ServiceWorkerRegistration.showNotification . Đã thêm thời gian chờ cho móc onBackgroundMessage để cảnh báo đẩy im lặng sẽ không hiển thị nếu ServiceWorkerRegistration.showNotification được gọi bên trong hook trong vòng 1 giây. Xem sự cố GitHub # 3725 .

Kiểm tra SDK

  • Đã thêm một phương thức withFunctionTriggersDisabled chạy chức năng thiết lập do người dùng cung cấp với các trình kích hoạt Chức năng đám mây giả lập bị tắt. Điều này có thể được sử dụng để nhập dữ liệu vào Cơ sở dữ liệu thời gian thực hoặc trình giả lập Cloud Firestore mà không cần kích hoạt các chức năng được mô phỏng cục bộ. Phương pháp này chỉ hoạt động với Firebase CLI phiên bản 8.13.0 trở lên.

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

  • Thay đổi đột phá : các trường browser trong tệp package.json hiện trỏ đến gói ESM thay vì gói CJS. Người dùng đang sử dụng nhập ESM bây giờ phải sử dụng nhập mặc định thay vì nhập không gian tên.

    Trước 8.0.0

    import * as firebase from 'firebase/app'
    

    Sau 8.0.0

    import firebase from 'firebase/app'
    

    Mã sử ​​dụng require('firebase/app') hoặc require('firebase') sẽ vẫn hoạt động, nhưng để có được cách đánh máy phù hợp (ví dụ: để hoàn thành mã), người dùng nên thay đổi các lệnh gọi require này để require('firebase/app').default hoặc require('firebase/app').default require('firebase').default . Điều này là do SDK hiện sử dụng các kiểu đánh máy cho gói ESM và các gói khác nhau chia sẻ một tệp đánh máy.

Cloud Firestore

  • Đã xóa thuộc tính Firestore.logLevel không có giấy tờ.

  • Thay đổi đột phá : Đã xóa cài đặt experimentalTabSynchronization không dùng nữa. Để bật đồng bộ hóa nhiều tab, thay vào đó hãy sử dụng synchronizeTabs .

  • Bản phát hành này loại bỏ các xác thực kiểu thời gian chạy được TypeScript bao phủ. Các nhà phát triển có thể sử dụng các loại TypeScript của chúng tôi để xác thực việc sử dụng API.

  • Thay đổi đột phá : Đã xóa tùy chọn timestampsInSnapshots khỏi FirestoreSettings . Giờ đây, Cloud Firestore luôn trả về giá trị Timestamp cho tất cả giá trị dấu thời gian.

  • Đã thêm phương thức useEmulator(host, port) vào Cloud Firestore.

  • Đã 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 giúp điều chỉnh SDK chặt chẽ hơn với phần phụ trợ Cloud Firestore, phần mềm này luôn chấp nhận null và NaN cho tất cả các nhà khai thác.

Lưu trữ

  • Bản phát hành này loại bỏ các xác thực kiểu thời gian chạy được TypeScript bao phủ. Các nhà phát triển có thể sử dụng các loại TypeScript của chúng tôi để xác thực việc sử dụng API.

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

  • Đã thêm phương thức useEmulator(host, port) vào Cơ sở dữ liệu thời gian thực.

Các chức năng đám mây cho SDK ứng dụng Firebase

  • Đã thêm phương thức useEmulator(host, port) vào Chức năng đám mây cho SDK ứng dụng khách Firebase.

Phiên bản 7.24.0 - ngày 15 tháng 10 năm 2020

Xác thực

  • Đã thêm khả năng định cấu hình SDK để giao tiếp với Trình mô phỏng Firebase.

Cloud Firestore

  • Đã thêm một experimentalAutoDetectLongPolling FirestoreSettings mới vào FirestoreSettings . Khi được bật, lớp truyền tải bên dưới của SDK sẽ tự động phát hiện xem có nên sử dụng tính năng thăm dò dài hay không. Điều này rất giống với experimentalForceLongPolling , nhưng chỉ sử dụng tính năng thăm dò ý kiến ​​dài nếu được yêu cầu.

  • Đã khắc phục sự cố tiềm ẩn trong hàng đợi nội bộ của chúng tôi có thể cho phép thực hiện lệnh gọi API không theo thứ tự.

Kiểm tra SDK

  • Đã thay đổi để không xóa thuộc tính uid khỏi đối tượng xác thực người dùng trong initializeTestApp() . Xem sự cố GitHub # 3920 .

  • Đã sửa lỗi nhập cho các xác nhận quyền sở hữu tùy chỉnh.

Phiên bản 7.23.0 - ngày 8 tháng 10 năm 2020

phân tích

  • SDK giờ đây sẽ cảnh báo thay vì đưa ra lỗi nếu phát hiện thấy môi trường trình duyệt mà Analytics không hoạt động.

Cloud Firestore

  • SDK hiện bao gồm nhiều thông tin hơn trong thông báo lỗi cho các giao dịch IndexedDB không thành công.

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

  • Đã chuyển kiểm tra loggingEnabled để đợi cho đến khi quá trình khởi tạo hiệu suất kết thúc, điều này ngăn SDK bỏ dấu vết tùy chỉnh ngay sau khi nhận được đối tượng performance .
  • startTime một ngoại lệ khi startTime hoặc duration không phải là giá trị dương trong API trace.record() .

Kiểm tra SDK

  • Đã thêm các loại mạnh hơn vào options.auth cho initializeTestApp() .

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

Các chức năng đám mây cho SDK ứng dụng Firebase

  • Đã sửa một lỗi được giới thiệu trong 7.21.1 khiến các hàm có thể gọi gặp lỗi trong một số môi trường.

Phiên bản 7.22.0 - ngày 1 tháng 10 năm 2020

Các chức năng đám mây cho SDK ứng dụng Firebase

  • Người dùng hiện có thể đặt một miền tùy chỉnh cho các chức năng có thể gọi được.

Phiên bản 7.21.1 - ngày 24 tháng 9 năm 2020

Cloud Firestore

  • Đã khắc phục sự cố ngăn cản waitForPendingWrites() giải quyết trong các tab nền khi sử dụng nhiều tab. Xem sự cố GitHub # 3816 .

  • Đã sửa lỗi cảnh báo xơ vải "So sánh với -0" cho khách hàng xây dựng từ nguồn. Xem sự cố GitHub # 3814 .

Xác thực

  • Đã khắc phục sự cố mã hóa trong tập lệnh CDN Xác thực cho các môi trường yêu cầu UTF-8, ví dụ: tiện ích mở rộng của Chrome. Xem sự cố GitHub # 414 .

Phiên bản 7.21.0 - ngày 17 tháng 9 năm 2020

Cloud Firestore

  • Đã thêm toán tử truy vấn not-in!= Để sử dụng với .where() .
    • not-in 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.
    • != 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.
  • SDK hiện sử dụng FirestoreError thay vì Error trong các onSnapshot*() gọi lại lỗi onSnapshot*() .
  • Đã sửa lỗi trong đó CollectionReference.add() được gọi là FirestoreDataConverter.toFirestore() hai lần thay vì một lần. Xem sự cố GitHub # 3742

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

  • Đã sửa lỗi phát hiện ngữ cảnh SDK quản trị viên.

Kiểm tra SDK

  • Đã sửa lỗi ngăn người dùng thử nghiệm Cơ sở dữ liệu thời gian thực với cả SDK quản trị viên và SDK JS ứng dụng khách.

Phiên bản 7.20.0 - 10 tháng 9 năm 2020

phân tích

  • Đối với các ứng dụng sử dụng v7.20.0 và sau đó, căn cứ hỏa lực tự động fetches measurementId khi ứng dụng của bạn khởi Analytics. Có ID này trong đối tượng cấu hình Firebase của bạn là tùy chọn, nhưng nó đóng vai trò như một dự phòng trong trường hợp hiếm hoi mà tìm nạp động không thành công. Tìm hiểu thêm về trường này trong trang bắt đầu Analytics .

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

  • SDK hiện 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

  • Đã sửa lỗi trong đó, nếu thay đổi người dùng xảy ra trong khi kết nối mạng bị vô hiệu hóa, ứng dụng khách không tăng ảnh chụp nhanh từ bộ nhớ cache.

Nhắn tin qua đám mây

  • SDK không còn mở các liên kết không có nguồn gốc nữa, khắc phục sự cố bảo mật tiềm ẩn.

Phiên bản 7.19.1 - ngày 27 tháng 8 năm 2020

Cloud Firestore

  • Đã thêm tùy chọn merge vào firestore.settings() , hợp nhất cài đặt được cung cấp với cài đặt từ cuộc gọi trước. Điều này giải quyết vấn đề GitHub # 3354 .

Kiểm tra SDK

  • Đã khắc phục sự cố với assertFails() . Xem sự cố GitHub # 3671

Phiên bản 7.19.0 - ngày 20 tháng 8 năm 2020

Kiểm tra SDK

  • Đã phát hành @firebase/rules-unit-testing để thay thế gói @firebase/testing . Gói mới tương thích với API nhưng có các thay đổi về hành vi vi phạm sau:
    • assertFails() bây giờ chỉ không thành công với lỗi PERMISSION DENIED , không phải bất kỳ lỗi nào.
    • initializeAdminApp() hiện dựa vào firebase-admin thay vì bắt chước SDK quản trị.

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

  • Thêm kiểm tra để âm thầm ngăn Giám sát hiệu suất khởi chạy nếu API indexedDB.open() bắt buộc không có sẵn trong môi trường.

Cloud Firestore

  • Có thể thử lại terminate() nếu nó không thành công với một ngoại lệ IndexedDB. Xem sự cố GitHub # 2755 .

  • Bật dự phòng cho định danh tự động tạo ra trong môi trường hỗ trợ crypto nhưng không crypto.getRandomValues . Xem GitHub PR # 3487 .

Phiên bản 7.18.0 - ngày 13 tháng 8 năm 2020

Nhắn tin qua đám mây

  • Đã thêm onBackgroundMessage , được gọi bất kể thông báo có được hiển thị hay không.

  • getToken hiện chấp nhận một đối tượng tùy chọn bao gồm khóa vapid tùy chọn và đăng ký service worker tùy chọn.

  • setBackgroundMessageHandler được dùng nữa. Sử dụng API onBackgroundMessage thay thế.

  • useVapidKeyuseVapidKey được chấp useServiceWorker . Sử dụng getToken để đặt các giá trị này thay thế.

  • onTokenRefresh được chấp onTokenRefresh , hiện là một API không hoạt động.

Cloud Firestore

  • SDK không còn gặp sự cố với lỗi "Kết nối cơ sở dữ liệu đang đóng". Thay vào đó, các thao tác riêng lẻ gây ra lỗi này có thể bị từ chối. Khắc phục sự cố GitHub # 3495 .

  • Đã sửa lỗi gây ra các lần thử lại chậm cho các hoạt động IndexedDB ngay cả khi một trang web vào lại nền trước.

phân tích

  • analytics.isSupported() hiện trả về Promise<false> cho các môi trường mở rộng.

Phiên bản 7.17.2 - ngày 6 tháng 8 năm 2020

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

  • Đã thêm giao diện Database được triển khai bởi FirebaseDatabase . Điều này cho phép SDK dành cho người tiêu dùng (chẳng hạn như SDK quản trị Firebase) xuất các loại Cơ sở dữ liệu thời gian thực dưới dạng giao diện.

Cloud Firestore

  • Đã nâng cấp lên phiên bản mới nhất của Google Closure Library and Compiler. Các nhà phát triển sẽ không cần thực hiện bất kỳ thay đổi nào đối với mã của họ để xử lý thay đổi này.

Phiên bản 7.17.1 - ngày 24 tháng 7 năm 2020

phân tích

Phiên bản 7.17.0 - 23 tháng 7 năm 2020

phân tích

  • Đã thêm phương thức analytics.isSupported() trả về true nếu ngữ cảnh trình duyệt hiện tại hỗ trợ Analytics. Điều này có thể được sử dụng trong một điều kiện để ngăn việc khởi chạy Analytics trong các môi trường không hỗ trợ nó. Kiểm tra này cũng tự động chạy khi Analytics được khởi chạy ( firebase.analytics() ) và nếu nó tìm thấy một môi trường không được hỗ trợ, sẽ tạo ra lỗi khuyên các nhà phát triển sử dụng isSupported() . Khắc phục sự cố GitHub # 2393 .

Lưu trữ

  • Thông báo lỗi cho các lỗi phụ trợ bây giờ bao gồm thông báo phản hồi của chương trình phụ trợ.

Phiên bản 7.16.1 - 16 tháng 7 năm 2020

Cloud Firestore

  • SDK không còn bị treo nếu xảy ra lỗi IndexedDB khi hủy đăng ký một Query .

  • Đã xóa độ trễ ngăn Firestore thiết lập lại 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.

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

  • Thay vì sử dụng xác thực sản xuất, SDK sẽ sử dụng thông tin đăng nhập thử nghiệm để kết nối với Trình mô phỏng khi Cơ sở dữ liệu thời gian thực được sử dụng thông qua SDK quản trị Firebase. Khắc phục sự cố GitHub # 3144 .

Lưu trữ

Xác thực

  • Đã thêm trường browser trong package.json.

Phiên bản 7.16.0 - 09 tháng 7 năm 2020

Cloud Firestore

  • Đã thêm hỗ trợ cho set() với các tùy chọn hợp nhất khi sử dụng FirestoreDataConverter .

  • Đã thêm lại gói React Native, cho phép Cloud Firestore được sử dụng mà không có btoa/atob polyfills.

  • Đã xóa trình bao bọc bên trong xung quanh API công khai của chúng tôi nhằm ngăn chặn việc sử dụng SDK không chính xác cho người dùng JavaScript, nhưng đã khiến SDK ngừng hoạt động trong IE11. Xem sự cố GitHub # 3305 .

FCM

  • Đã khắc phục sự cố trong đó chúng tôi cố gắng cập nhật mã thông báo cho mọi lệnh gọi getToken() vì chúng tôi không lưu mã thông báo cập nhật trong IndexedDB .

  • Đã khắc phục sự cố không tương thích RxJS bằng cách thêm hỗ trợ cho onMessage để cuộc gọi lại nội bộ có thể hoạt động với Subscriber của RxJS. Xem sự cố GitHub # 3142 .

Các chức năng đám mây cho SDK ứng dụng Firebase

Phiên bản 7.15.5 - ngày 25 tháng 6 năm 2020

Cloud Firestore

  • Đã sửa lỗi đôi khi khiến hoạt động Cloud Firestore không thành công trong quá trình thay đổi mã thông báo xác thực. Xem sự cố GitHub # 3179

Phiên bản 7.15.4 - ngày 20 tháng 6 năm 2020

Cloud Firestore

  • Đã xóa điểm nhập React Native do sự cố trong thư viện nội bộ của chúng tôi. Đối với Cloud Firestore trong React Native, hãy sử dụng bản dựng trình duyệt và thêm các polyfills cần thiết. Xem sự cố GitHub # 2667

Phiên bản 7.15.3 - ngày 19 tháng 6 năm 2020

Cloud Firestore

  • Đã khắc phục sự cố ngăn Cloud Firestore hoạt động trong React Native. Xem sự cố GitHub # 2667

Phiên bản 7.15.2 - 18 tháng 6 năm 2020

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

  • Đã thêm một tiêu đề HTTP nội bộ vào kết nối WebSocket.

Cloud Firestore

  • Đã cập nhật grpc-js lên phiên bản ^1.0.0 .

Phiên bản 7.15.1 - 11 tháng 6 năm 2020

Cloud Firestore

  • Đã khắc phục sự cố 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. Hãy xem sự cố GitHub # 2923 .

  • Đã khắc phục sự cố hồi quy được giới thiệu trong PR # 3048 đã thay đổi biến context.path từ Path|null thành undefined|null . Xem sự cố GitHub # 3172 .

Phiên bản 7.15.0 - ngày 04 tháng 6 năm 2020

Cloud Firestore

  • Đã thêm cài đặt experimentalForceOwningTab localStorage có thể được sử dụng để kích hoạt tính bền bỉ trong môi trường không có localStorage , cho phép sử dụng tính bền bỉ trong Web Worker. Xem GitHub sự cố # 983 .

  • Tất cả các trường hợp lỗi đã biết đối với các sự cố liên quan đến IndexedDB hiện đã được giải quyết. Thay vì làm hỏng máy khách, các lỗi IndexedDB dẫn đến các hoạt động bị từ chối (ví dụ: Writes bị từ chối hoặc trình nghe Query lỗi). Nếu những từ chối này xuất hiện trong ứng dụng của bạn, bạn có thể thử lại các thao tác này khi quyền truy cập IndexedDB được khôi phục. IndexedDB lỗi IndexedDB xảy ra do công việc nền sẽ tự động được thử lại.

    Nếu bạn tiếp tục thấy các sự cố liên quan đến IndexedDB , vui lòng cung cấp phản hồi về sự cố GitHub # 2755 .

Phiên bản 7.14.6 - 29 tháng 5 năm 2020

Cloud Firestore

  • Đã khắc phục sự cố có thể khiến Cloud Firestore tạm thời ngoại tuyến khi xảy ra sự kiện hiển thị Cửa sổ.

  • Đã thêm hỗ trợ gọi FirebaseFiresore.settings với { ignoreUndefinedProperties: true } . Khi tham số này được đặt, Cloud Firestore sẽ bỏ qua các thuộc tính không xác định bên trong các đối tượng thay vì từ chối lệnh gọi API.

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

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

  • Đã sửa lỗi phân tích cú pháp URL cơ sở dữ liệu thời gian thực để hỗ trợ các miền có nhiều hơn 3 thành phần.

Phiên bản 7.14.4 - 14 tháng 5 năm 2020

Cloud Firestore

  • Cố định một hồi quy giới thiệu trong v7.14.2 rằng sai áp dụng một FieldValue.increment kết hợp với set({...}, {merge: true}) .

Phiên bản 7.14.3 - 07 tháng 5 năm 2020

Cloud Firestore

  • Cloud Firestore hiện từ chối trình onSnapshot() nếu họ không thể đăng ký trong IndexedDB . Trước đây, những lỗi này đã làm hỏng máy khách.

Phiên bản 7.14.2 - 23 tháng 4 năm 2020

Cloud Firestore

  • Firestore hiện từ chối các thao tác ghi nếu chúng không thể tồn tại trong IndexedDB. Trước đây, những lỗi này đã làm hỏng máy khách.

  • Đã khắc phục sự cố nguồn liên quan đến IndexedDB cho các tab nhận thông báo nhiều tab trong khi hệ thống tệp bị khóa.

FCM

  • Đã thay đổi để so sánh tên máy chủ thay vì toàn bộ URL để quyết định xem có ứng dụng cửa sổ phù hợp hay không. Xem GitHub sự cố # 390 .

Phiên bản 7.14.1 - ngày 16 tháng 4 năm 2020

Lưu trữ

  • Đã khắc phục sự cố xảy ra khi người dùng cố gắng truy xuất dữ liệu từ nhiều phiên bản Bộ nhớ.

Xác thực

  • Đã sửa lỗi xảy ra khi người dùng đặt mức độ bền bỉ thành LOCAL trong môi trường công nhân. Xem số báo GitHub # 2903 .

Phiên bản 7.14.0 - ngày 9 tháng 4 năm 2020

Cloud Firestore

  • Đã thay thế grpc bằng @grpc/grpc-js trong bản dựng Node.js. Do đó, phiên bản NodeJS được hỗ trợ tối thiểu hiện là 8.13.0 .

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.

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

  • Cập nhật cơ chế vận chuyển sự kiện hiệu suất nội bộ.

Phiên bản 7.13.2 - ngày 2 tháng 4 năm 2020

Cloud Firestore

  • Đã khắc phục sự cố hồi quy được giới thiệu bởi một thay đổi tiền điện tử trong 7.13.0 phá vỡ Firestore trong IE 11. Xem sự cố GitHub # 2827 .

  • Đã khắc phục sự cố gây ra quá nhiều lần đọc trong các tập thay đổi lớn trên kết nối chậm. Xem sự cố GitHub # 2683 .

  • Đã khắc phục sự cố khiến WriteBatch.commit() giải quyết một vòng lặp muộn hơn .set.update . Xem sự cố GitHub # 2822 .

FCM

  • Đã khắc phục sự cố được giới thiệu trong 7.7.0, khi FCM chuyển sang cung cấp các khóa VAPID được mã hóa base64 cho PushManager để đăng ký đẩy. Để tương thích ngược, SDK đã chuyển trở lại sử dụng các khóa VAPID trong loại ArrayBuffer . Xem số 2712 trên Github .

Phiên bản 7.13.1 - 27 tháng 3 năm 2020

Cloud Firestore

  • Đã xóa dấu phẩy lơ lửng trong package.json.

Phiên bản 7.13.0 - 26 tháng 3 năm 2020

Cloud Firestore

  • Đã thêm một bản dựng cửa hàng cứu firestore chỉ dành cho bộ nhớ. Thay vì duy trì dữ liệu trong IndexedDB , nó giữ nó trong bộ nhớ. Bản dựng này nhỏ hơn khoảng 14% so với bản dựng đầy đủ tính năng vì nó không có mã liên quan đến IndexedDB . Nếu bạn không quan tâm đến dữ liệu liên tục trong các phiên hoặc mã của bạn chạy trong môi trường không hỗ trợ IndexedDB , hãy sử dụng bản dựng này để giảm kích thước ứng dụng của bạn. Nó có sẵn theo một đường dẫn nhập khẩu đặc biệt. Bạn có thể nhập nó theo cách này:

    import * as firebase from 'firebase/app';
    import 'firebase/firestore/memory';

    // Don't change the format for any other products. import 'firebase/auth'; // etc.

    Hoặc nếu sử dụng CDN:

    <script src="https://www.gstatic.com/firebasejs/7.13.0/firebase-app.js"></script>
    <script src="https://www.gstatic.com/firebasejs/7.13.0/firebase-firestore.memory.js"></script>
    <!-- Don't change the format for any other products. -->
    <script src="https://www.gstatic.com/firebasejs/7.13.0/firebase-auth.js"></script>
    <!-- etc. -->
    

phân tích

  • Đã thêm enums tiện lợi và quá tải chức năng để hỗ trợ các sự kiện thương mại điện tử nâng cao.

Phiên bản 7.12.0 - 19 tháng 3 năm 2020

  • Đã thêm hai phương pháp để ghi nhật ký:
    • firebase.setLogLevel() , đặt mức cao hơn mà thông báo nhật ký Firebase sẽ được hiển thị.
    • firebase.onLog() , thêm một lần chạy gọi lại do người dùng chỉ định trên mỗi sự kiện nhật ký. Lệnh gọi lại có quyền truy cập vào cấp nhật ký, thông báo và tên của gói (ví dụ: "@ firebase / firestore") đã tạo thông báo nhật ký.

Cloud Firestore

  • Đã khắc phục sự cố trong đó giá trị số -0.0 sẽ mất dấu khi được lưu trữ trong Cloud Firestore.

Phiên bản 7.11.0 - 12 tháng 3 năm 2020

Xác thực

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

Cloud Firestore

  • Đã triển khai Timestamp.valueOf() để các đối tượng Timestamp có thể được so sánh theo thứ tự tương đối bằng cách sử dụng các toán tử so sánh số học JavaScript. Khắc phục sự cố GitHub # 2632 .

Phiên bản 7.9.3 - 28 tháng 2 năm 2020

Lưu trữ

  • Đã khắc phục sự cố được giới thiệu trong 7.9.2 trong đó Bộ nhớ có thể gặp lỗi CORS (sự cố GitHub ).

Phiên bản 7.9.2 - 27 tháng 2 năm 2020

Cloud Firestore

  • Đã khắc phục sự cố trong đó giá trị OnlineState bị sai lệch và không được phân tích cú pháp chính xác.

Phiên bản 7.9.1 - ngày 21 tháng 2 năm 2020

Cloud Firestore

  • Đã khắc phục sự cố được giới thiệu trong 7.9.0 trong đó các gói Cloud Firestore Node và CJS được thu nhỏ không hoạt động.

Phiên bản 7.9.0 - 20 tháng 2 năm 2020

Cloud Firestore

  • Phiên bản thu nhỏ của thư viện Cloud Firestore, được thêm vào dưới dạng một tùy chọn thử nghiệm trong 7.8.0, hiện là gói Cloud Firestore mặc định. Các bước được liệt kê trong ghi chú phát hành 7.8.0 không còn cần thiết để tải gói rút gọn. Việc thu nhỏ này hiện làm giảm tổng kích thước gói xuống khoảng 15% kể từ phiên bản này.

  • Đã khắc phục sự cố trong đó thông tin xác thực không được tôn trọng trong môi trường Cordova. Xem số 2626 trên Github .

  • Đã sửa lỗi hồi quy hiệu suất được giới thiệu bằng cách bổ sung Query.limitToLast(n: number) trong Firestore 1.7.0 (Firebase 7.3.0). Xem số 2620 trên Github .

FCM

  • Khắc phục sự cố trong đó nhân viên dịch vụ không cập nhật một cách đáng tin cậy sau khi nâng cấp lên phiên bản Firebase mới. Xem số 2590 trên Github .

Phiên bản 7.8.2 - ngày 13 tháng 2 năm 2020

Cloud Firestore

  • Đã khắc phục sự cố trong đó CollectionReference.add() sẽ từ chối các loại tùy chỉnh khi sử dụng withConverter() . Vấn đề trên Github # 2606 .

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

Cloud Firestore

Phiên bản 7.8.0 - ngày 30 tháng 1 năm 2020

Cloud Firestore

  • Thử nghiệm: Đã thêm một phương thức nhập rút gọn thay thế cho gói firestore . Người dùng muốn thử nhập thử nghiệm này có thể thực hiện theo cách này:

    import * as firebase from 'firebase/app';
    import '@firebase/firestore/dist/index.cjs.min';
    
    // Don't change the format for any other products.
    import 'firebase/auth';
    // etc.
    

    Hoặc nếu sử dụng CDN:

    <script src="https://www.gstatic.com/firebasejs/7.8.0/firebase-app.js"></script>
    <script src="https://www.gstatic.com/firebasejs/7.8.0/firebase-firestore.min.js"></script>
    <!-- Don't change the format for any other products. -->
    <script src="https://www.gstatic.com/firebasejs/7.8.0/firebase-auth.js"></script>
    <!-- etc. -->
    

Phiên bản 7.7.0 - ngày 16 tháng 1 năm 2020

Cloud Firestore

  • Đã khắc phục sự cố trong đó thông tin xác thực không được tôn trọng trong một số tiện ích mở rộng của Firefox hoặc Chrome. Xem số 1491 của Github .

  • Firestore trước đây yêu cầu rằng mọi tài liệu được đọc trong một giao dịch cũng phải được viết. Yêu cầu này đã bị xóa và giờ đây bạn có thể đọc tài liệu trong giao dịch mà không cần ghi vào tài liệu đó.

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

  • Đã cập nhật giao thức truyền tải nội bộ từ proto2 sang proto3.

Xác thực

  • Đã thêm hàm tạo bị thiếu cho loại SAMLAuthProvider .

Phiên bản 7.6.2 - ngày 9 tháng 1 năm 2020

Chức năng đám mây cho SDK ứng dụng Firebase

  • Đã sửa lỗi khiến các yêu cầu cấp quyền thông báo bật lên khi sử dụng functions.httpsCallable() .

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

  • Đã hoàn nguyên một thay đổi gây ra hiệu suất cập nhật chậm như được báo cáo trong Github sự cố # 2487 .

Cloud Firestore

  • Đã khắc phục sự cố trong đó thông tin xác thực không được tôn trọng trong các môi trường trình duyệt nhất định (Electron 7, IE11 trong vùng đáng tin cậy, ứng dụng UWP). Khắc phục sự cố Github # 1491 .

Phiên bản 7.6.1 - 18 tháng 12 năm 2019

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

  • Đã khắc phục sự cố nhập nội bộ trong đó thư viện firebase-admin , phụ thuộc vào @firebase/database , không biên dịch được.

Phiên bản 7.6.0 - ngày 12 tháng 12 năm 2019

Cloud Firestore

  • Đã thêm hỗ trợ để lưu trữ và truy xuất các loại tùy chỉnh trong Cloud Firestore. Hỗ trợ thêm cho các bộ sưu tập, tài liệu và truy vấn được đánh máy mạnh. Giờ đây, bạn có thể sử dụng withConverter() để cung cấp trình chuyển đổi dữ liệu tùy chỉnh sẽ chuyển đổi giữa dữ liệu Cloud Firestore và loại tùy chỉnh của bạn.

  • Đã thêm kiểm tra môi trường mạnh mẽ hơn để kiểm tra cụ thể sự tồn tại của process.env . Khắc phục sự cố Github # 2404 .

FCM

  • getToken() hiện tự động yêu cầu quyền thông báo nếu quyền được đặt thành "mặc định".

  • Tạm thời loại bỏ các lỗi xảy ra khi đặt lại quyền thông báo, đang chờ giải pháp phụ trợ. Khắc phục sự cố Github # 2364 .

Kiểm tra SDK

Phiên bản 7.5.2 - ngày 6 tháng 12 năm 2019

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

  • Đã khắc phục sự cố được giới thiệu trong 7.5.1 trong đó @firebase/component không được liệt kê dưới dạng phụ thuộc. Nó gây ra "Không thể tìm thấy mô-đun @firebase/component " trong gói firebase-admin , phụ thuộc vào Cơ sở dữ liệu thời gian thực.

Phiên bản 7.5.1 - ngày 5 tháng 12 năm 2019

  • Đã khắc phục sự cố khi nhập undefined trong IDE nhắc tự động nhập từ gói firebase. Địa chỉ # 2203 (liên kết GitHub) . Cảm ơn camsjams cho sự đóng góp !

  • Đã sửa lỗi trong đó objectVal của objectVal sẽ trả về một đối tượng trống nếu kết quả của snapshot.val() không phải là một đối tượng.

Cấu hình từ xa

  • Đã sửa lỗi trong đó các lời hứa được trả về bởi fetch()fetchAndActivate() không bị từ chối với các lỗi do hoạt động indexeddb gây ra. Bây giờ bạn có thể xử lý các lỗi này trong trình xử lý lỗi của lời hứa được trả về.

Phiên bản 7.5.0 - ngày 21 tháng 11 năm 2019

Cloud Firestore

  • Cải thiện hiệu suất của các truy vấn được thực thi lặp đi lặp lại khi tính năng duy trì được bật. Các truy vấn được thực hiện gần đây sẽ thấy những cải tiến đáng kể. Lợi ích này bị giảm nếu thay đổi tích lũy trong khi truy vấn không hoạt động. Các truy vấn sử dụng API limit() có thể không phải lúc nào cũng có lợi, tùy thuộc vào các thay đổi tích lũy.

Phiên bản 7.4.0 - 14 tháng 11 năm 2019

Xác thực

  • Đã thêm hỗ trợ nonce để đăng nhập bằng thông tin đăng nhập mã thông báo ID OIDC.
  • Đã thêm hỗ trợ đăng nhập OAuth cho các ứng dụng được cung cấp từ các nguồn gốc bằng lược đồ ionic:// cho khuôn khổ Ionic mới nhất.

phân tích

  • Đã sửa lỗi trong đó Analytics không hoạt động với Trình quản lý thẻ của Google trên cùng một trang.

Cloud Firestore

  • Toán tử truy vấn in hiện chấp nhận các mảng lồng nhau.

Phiên bản 7.3.0 - ngày 7 tháng 11 năm 2019

Cloud Firestore

  • Đã thêm inarray-contains-any toán tử truy vấn array-contains-any để sử dụng với .where() . Toán tử in tìm tài liệu trong đó giá trị của trường được chỉ định nằm trong một mảng được chỉ định. Toán tử array-contains-any tìm tài liệu trong đó trường được chỉ định là một mảng và chứa bất kỳ phần tử nào của một mảng được chỉ định.
  • Đã thêm Query.limitToLast(n: number) trả về kết quả là n tài liệu cuối cùng.

Phiên bản 7.2.3 - ngày 31 tháng 10 năm 2019

  • Cải thiện xử lý lỗi trong cuộc gọi cài đặt.

Cloud Firestore

  • Bây giờ máy khách có thể khôi phục nếu các hoạt động IndexedDB định kỳ nhất định không thành công. Địa chỉ # 2232 (liên kết GitHub) .

phân tích

  • Đã thêm chữ ký quá tải bị thiếu cho logEvent khi sử dụng tên sự kiện tiêu chuẩn add_payment_infopage_view .

Phiên bản 7.2.2 - ngày 24 tháng 10 năm 2019

  • Đã sửa lỗi phát hiện thay đổi trong rxFire.
  • Đã chuyển sang ref.isEqual khi so sánh các tài liệu để hỗ trợ nhóm thu thập cho Cloud Firestore trong rxFire.

Cloud Firestore

  • Cải thiện hỗ trợ iOS 13 bằng cách loại bỏ sự cố bổ sung trong lớp bền vững IndexedDB của chúng tôi.

Phiên bản 7.2.1 - ngày 16 tháng 10 năm 2019

Cloud Firestore

  • Đã khắc phục sự cố trên iOS 13 xảy ra khi tính năng duy trì được bật trong tab nền.
  • Đã khắc phục sự cố trong tương tác với Trình mô phỏng Firestore khiến yêu cầu có dấu thời gian không thành công.

Phiên bản 7.2.0 - ngày 10 tháng 10 năm 2019

  • Phương thức Installations.getToken() hiện chấp nhận một tham số forceRefresh tùy chọn.

Cấu hình từ xa

  • Đã sửa đường dẫn của tập lệnh main trong tệp package.json .

Phiên bản 7.1.0 - ngày 3 tháng 10 năm 2019

Cloud Firestore

  • Đã thêm một phương thức Firestore.onSnapshotsInSync() thông báo cho bạn khi tất cả các trình nghe ảnh chụp nhanh của bạn đồng bộ với nhau.

  • Đã khắc phục sự cố hồi quy khiến các truy vấn có bộ lọc trường lồng nhau gặp sự cố ứng dụng khách nếu trường không có trong bản sao cục bộ của tài liệu.

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

  • Đã khắc phục sự cố khiến các giá trị số lớn với các số không ở đầu không phải lúc nào cũng được sắp xếp chính xác.

phân tích

  • Đã sửa lỗi trong đó firebase.analytics() không khả dụng khi nhập firebase dưới dạng gói tất cả trong một.

  • Tham số eventParams to logEvent() bây giờ là tùy chọn.

Phiên bản 7.0.0 - ngày 26 tháng 9 năm 2019

  • Thay đổi đột phá : Đối với người dùng TypeScript, phiên bản TypeScript tối thiểu được yêu cầu là 2.8.0.

FCM

  • Thay đổi đột phá : phiên bản 7.0.0 giới thiệu một dịch vụ mới liên quan đến đăng ký phiên bản ứng dụng khách. Nếu bạn hiện đang sử dụng FCM cho web và muốn nâng cấp lên SDK 7.0.0 trở lên, bạn phải bật API đăng ký FCM cho dự án của mình trong Google Cloud Console.

    Khi bạn bật dịch vụ này, hãy đảm bảo rằng bạn đã đăng nhập vào Cloud Console bằng cùng một tài khoản Google mà bạn sử dụng cho Firebase và đảm bảo chọn đúng dự án.

    Cũng hãy chắc chắn rằng projectId , apiKey , appIdmessagingSenderId có mặt trong config ứng dụng của bạn. Xem cách lấy đối tượng cấu hình ứng dụng của bạn .

    Không có nhiệm vụ di chuyển nào khác được yêu cầu; khi API được bật, các ứng dụng trước 7.0.0 sẽ tiếp tục hoạt động bình thường.

    Các dự án mới thêm FCM SDK có dịch vụ này được bật theo mặc định.

  • Phiên bản 7.0.0 giới thiệu việc nhắm mục tiêu các ứng dụng web cho các tin nhắn FCM được gửi từ trình soạn thảo Thông báo. Bây giờ bạn có thể nhắm mục tiêu các tin nhắn thông báo web theo loại và phiên bản trình duyệt cũng như hệ điều hành. Xem Gửi tin nhắn bằng Bảng điều khiển Firebase .

phân tích

Cấu hình từ xa

Phiên bản 6.6.2 - ngày 19 tháng 9 năm 2019

Cloud Firestore

  • Đã sửa lỗi hồi quy được giới thiệu trong 6.6.0 trong đó Document.toString() gặp lỗi.

Phiên bản 6.6.1 - ngày 12 tháng 9 năm 2019

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

  • Dọn dẹp nội bộ mã hỗ trợ Node.js.

Phiên bản 6.6.0 - ngày 5 tháng 9 năm 2019

Xác thực

  • Đã thêm hỗ trợ cho nhiều lần thuê cho các nhà phát triển Nền tảng Google Cloud Identity.

Cloud Firestore

  • Đã khắc phục tình trạng chạy đua giữa xác thực và khởi tạo Firestore có thể dẫn đến việc ghi ban đầu vào cơ sở dữ liệu bị bỏ.

Phiên bản 6.5.0 - 23 tháng 8, 2019

Cloud Firestore

  • Đã thêm một phương thức Firestore.waitForPendingWrites() cho phép người dùng đợi cho đến khi tất cả các lần ghi đang chờ xử lý được phần phụ trợ Firestore thừa nhận.
  • Đã thêm một phương thức Firestore.terminate() kết thúc phiên bản, giải phóng mọi tài nguyên bị giữ. Sau khi hoàn tất, bạn có thể tùy chọn gọi Firestore.clearPersistence() để xóa dữ liệu Firestore còn tồn tại khỏi đĩa.

Phiên bản 6.4.2 - ngày 23 tháng 8 năm 2019

  • Đã thay đổi fromRef , 'fromDocRef' và fromCollectionRef để chấp nhận một tham số option trong rxFire.

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

  • Đã khắc phục sự cố hồi quy được giới thiệu trong 6.4.1 trong đó các bộ sưu tập chỉ số được tích hợp sẵn gây ra lỗi.

Phiên bản 6.4.1 - ngày 22 tháng 8 năm 2019

  • SDK không còn gây ra lỗi khi đăng ký dịch vụ trùng lặp. Điều này đơn giản hóa các trường hợp khi mỗi thành phần phụ thuộc nội bộ vào một thành phần khác và mỗi thành phần có thể cố gắng đăng ký nó.

Cloud Firestore

  • Các giao dịch hiện thực hiện dự phòng theo cấp số nhân trước khi thử lại. Điều này có nghĩa là các giao dịch trên các tài liệu có tính cạnh tranh cao có nhiều khả năng thành công hơn.

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

  • Giám sát hiệu suất hiện xác nhận các chỉ số và thuộc tính hiệu suất trước khi lưu trữ chúng.

Phiên bản 6.4.0 - ngày 15 tháng 8 năm 2019

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

  • Khi phân tích cú pháp URL cơ sở dữ liệu thời gian thực, tham số truy vấn URL ns sẽ được coi là tên không gian tên cơ sở dữ liệu thời gian thực mặc định.
  • Đã khắc phục sự cố khiến sự kiện .info/serverTimeOffset không kích hoạt.

Phiên bản 6.3.5 - ngày 8 tháng 8 năm 2019

Xác thực

  • Đã khắc phục sự cố trong đó các kết quả chuyển hướng được lưu trong bộ nhớ cache không bị xóa sau khi gọi signOut() hoặc getRedirectResult() .

Phiên bản 6.3.4 - ngày 1 tháng 8 năm 2019

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

  • Đã khắc phục sự cố trong đó các ký tự UTF-8 nhiều byte không được viết chính xác khi sử dụng firebase.js hoặc firebase-database.js .

Phiên bản 6.3.3 - ngày 26 tháng 7 năm 2019

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

  • Đã sửa lỗi hồi quy được giới thiệu trong v6.3.2 gây ra lỗi khi chạy trong môi trường trình duyệt.

Phiên bản 6.3.2 - ngày 25 tháng 7 năm 2019

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

  • Đã thêm một biến môi trường ( FIREBASE_DATABASE_EMULATOR_HOST ) cho phép các nhà phát triển trỏ SDK trình mô phỏng cơ sở dữ liệu đến một phiên bản trình mô phỏng cơ sở dữ liệu cục bộ.

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

  • SDK đã được cập nhật để xử lý lỗi tốt hơn khi thư viện Giám sát hiệu suất được nhập trong môi trường không có đối tượng window (chẳng hạn như phía máy chủ của ứng dụng SSR) hoặc phiên bản Giám sát hiệu suất được khởi tạo trong môi trường như vậy.

Phiên bản 6.3.1 - ngày 18 tháng 7 năm 2019

Cloud Firestore

  • Giao dịch bây giờ linh hoạt hơn. Một số chuỗi hoạt động trước đây không được phép sai giờ đã được cho phép. Ví dụ: sau khi đọc một tài liệu không tồn tại, bây giờ bạn có thể đặt nó thành công nhiều lần trong một giao dịch.

  • Đã khắc phục sự cố trong đó kết quả truy vấn tạm thời bị thiếu các tài liệu trước đó chưa khớp nhưng đã được cập nhật để hiện khớp với truy vấn.

Phiên bản 6.3.0 - ngày 11 tháng 7 năm 2019

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

  • Đã khắc phục sự cố gây ra lỗi khi tải trang trong môi trường trình duyệt không hỗ trợ IndexedDB (chẳng hạn như khi cookie bị tắt).

Phiên bản 6.2.4 - ngày 27 tháng 6 năm 2019

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

  • Đã khắc phục sự cố trong đó Giám sát hiệu suất ném một ngoại lệ trong môi trường không được hỗ trợ. Giờ đây, Giám sát hiệu suất sẽ không khởi tạo trong môi trường không được hỗ trợ.

Phiên bản 6.2.3 - ngày 24 tháng 6 năm 2019

Authentication

  • Fixed a bug causing errors in Node.

Cloud Firestore

  • Fixed an issue causing some queries to return no results.

Version 6.2.2 - June 21, 2019

  • Reverted change to the way the React Native bundle imports AsyncStorage as it was causing errors.

Cloud Firestore

  • Made error messages more informative for AsyncQueue errors on iOS.

Version 6.2.1 - June 20, 2019

  • Updated the React Native bundle to first try importing the AsyncStorage module from the recommended community package, if available, instead of the now-deprecated version bundled with React Native core.

  • Fixed a bug in Firebase's environment check that can cause errors when Firebase is bundled into user code (using tools such as Rollup).

Cloud Firestore

  • Fixed an issue causing errors in environments that are missing window.addEventListener , such as React Native with Expo.

Storage

  • Fixed an incorrect type on Reference.put() params.

Version 6.2.0 - June 13, 2019

Cloud Firestore

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

  • Added logging and a custom error message to help users hitting https://bugs.webkit.org/show_bug.cgi?id=197050 (a bug in iOS 12.2 causing the SDK to potentially crash when persistence is enabled).

Version 6.1.1 - June 6, 2019

  • Did some internal refactoring to improve type safety and documentation generation.

Version 6.1.0 - May 28, 2019

Cloud Firestore

  • Fixed an issue where an environment check fails in Node.js environments.

Storage

  • Added the ability to list objects in a bucket.

Cloud Messaging

  • Deprecated requestPermission() . Use the native browser API Notification.requestPermission() instead.

Version 6.0.4 - May 23, 2019

  • Browser environment check is now able to detect a web worker environment.

  • @firebase/app-types and @firebase/util are now direct dependencies of the main firebase package.

Cloud Firestore

  • Cloud Firestore will gracefully fall back to memory persistence when the user is in Firefox Private Browsing.

  • Cloud Firestore now recovers more quickly after network connectivity changes (airplane mode, Wi-Fi availability, etc.).

Version 6.0.2 - May 9, 2019

  • Browser environment check now works correctly without throwing an error in non-browser environments.

Cloud Firestore

  • Updated gRPC to 1.20.3 to support Node.js 12 and Electron v5.0.

Version 6.0.1 - May 8, 2019

Authentication

  • Fixed a regression introduced in 6.0.0 that caused code to access a removed property.

Version 6.0.0 - May 7, 2019

  • Breaking change : Removed polyfills in the Firebase package. Now developers must decide which polyfills to include based on the environments they need to support. This ensures only required polyfills are included, reducing application size. See Environment Support .

Authentication

  • Breaking change : Removed previously deprecated APIs.

    Removed Replaced by
    signInAndRetrieveDataWithCustomToken signInWithCustomToken
    signInAnonymouslyAndRetrieveData signInAnonymously
    createUserAndRetrieveDataWithEmailAndPassword createUserWithEmailAndPassword
    signInAndRetrieveDataWithEmailAndPassword signInWithEmailAndPassword
    fetchProvidersForEmail fetchSignInMethodsForEmail
  • Breaking change : Updated the return type signature for signInWithCredential and linkWithCredential to a promise that resolves with a UserCredential instead of a User .

  • Changed reauthenticateWithCredential to return a promise that resolves with a UserCredential .

  • Deprecated the following APIs

    Deprecated Use instead
    signInAndRetrieveDataWithCredential signInWithCredential
    linkAndRetrieveDataWithCredential linkWithCredential
    reauthenticateAndRetrieveDataWithCredential reauthenticateWithCredential

Cloud Firestore

  • You can now query across all collections in your database with a given collection ID using the FirebaseFirestore.collectionGroup() method.

  • Deprecated the experimentalTabSynchronization setting in favor of synchronizeTabs . If you use multi-tab synchronization, it is recommended that you update your call to enablePersistence() . Firestore logs an error if you continue to use experimentalTabSynchronization .

Realtime Database

  • Breaking change : Improved consistency between the type annotations for Query.on / Reference.on , Query.off / Reference.off and Query.once / Reference.once .

Performance Monitoring

  • This release contains the new Performance Monitoring Client SDK. Visit the Performance Monitoring for Web Getting Started guide .

Version 5.10.1 - April 25, 2019

Authentication

  • Fixed an issue where duplicate auth events could cause errors when using signInWithPopup() .
  • Fixed an issue where the SDK could fail to detect that it is in a service worker environment.
  • Added an error message that appears when the client attempts to perform an admin-only operation.

Cloud Firestore

  • Enabled the SDK to recognize older versions of iOS Safari and Android when checking if persistence can be enabled.

Version 5.10.0 - April 18, 2019

Authentication

  • Added serialization and deserialization methods to AuthCredential classes.

Cloud Firestore

  • Added an experimentalForceLongPolling setting that can be used to work around proxies that prevent the Firestore client from connecting to the Firestore backend.

Version 5.9.4 - April 11, 2019

Storage

  • Fixed an incorrect type definition in UploadTask.on() params.

Version 5.9.3 - April 4, 2019

Cloud Messaging

  • Refactored to use const enum for ErrorCode .

Version 5.9.2 - Mar 28, 2019

Cloud Firestore

  • Added a missing type definition for firestore.FieldValue.increment .

Version 5.9.1 - Mar 21, 2019

Cloud Firestore

  • Increased a connection timeout that could lead to large writes perpetually retrying without ever succeeding.

  • Fixed an issue where transactions in a NodeJS app could be sent without auth credentials, leading to Permission Denied errors.

  • Fixed an issue with IndexedDb persistence that triggered an internal assert for Queries that use nested DocumentReferences in where() clauses.

Version 5.9.0 - Mar 14, 2019

Cloud Firestore

  • Added FieldValue.increment() , which can be used in update() and set(..., {merge:true}) to increment or decrement numeric field values safely without transactions.
  • Prepared the persistence layer to support collection group queries. While this feature is not yet available, all schema changes are included in this release. Once you upgrade, you will not be able to use an older version of the Firestore SDK with persistence enabled.

FCM

  • The SDK now does not send messages to Chrome Extension background pages, which previously caused notifications not to display.

Storage

  • Fixed an incorrect type definition.

Version 5.8.6 - Mar 7, 2019

Cloud Firestore

  • Improved performance when querying over documents that contain subcollections.

Version 5.8.5 - Mar 1, 2019

  • Added a warning that appears in the console at runtime if a Firebase browser bundle is loaded in a node environment.

Authentication

  • Added OAuthCredential type as an exposed type.

  • Fixed updateProfile() so each property passed to it is optional.

Cloud Functions for Firebase Client SDK

  • Added timeouts and ability to customize them to HttpsCallables .

Version 5.8.4 - Feb 21, 2019

Cloud Firestore

  • Fixed an uncaught promise error occurring when enablePersistence() was called in a second tab.

Testing SDK

  • Made rulesets that don't compile throw errors.

Version 5.8.3 - Feb 14, 2019

Cloud Firestore

  • Improved error handling for endAt queries.

Version 5.8.2 - Jan 31, 2019

  • Added a missing file to the files array in package.json.

  • Fixed some errors in the documentation.

Version 5.8.1 - Jan 24, 2019

  • Added the missing depenedency to auth-types and storage-types packages.

Testing SDK

  • Added clearFirestoreData() to delete data between tests.

Version 5.8.0 - Jan 17, 2019

  • Added a type definition file for all firebase components, so that they work with TypeScript with dynamic import.

Cloud Firestore

  • BREAKING: The timestampsInSnapshots setting is now enabled by default. Now, timestamp fields read from a DocumentSnapshot will be returned as Timestamp objects instead of Date . Any code expecting to receive a Date object must be updated.

  • 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.

Version 5.7.2 - Jan 10, 2019

  • Fixed a packaging issue where some external dependencies were included in the Firebase package.

  • Added syntax highlights to the README file.

Cloud Firestore

  • Fixed a regression introduced in 5.7.0 that caused apps using experimentalTabSynchronization to hit an exception for "Failed to obtain primary lease for action 'Collect garbage'".

Version 5.7.1 - Dec 20, 2018

Authentication

  • Added SAML providers and exposed the API to enable OIDC providers.

  • Changed the email validation logic to allow international email addresses.

Cloud Firestore

  • Added a custom error for schema downgrades.

Version 5.7.0 - Dec 6, 2018

Cloud Firestore

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

  • Updated gRPC version to support Node 11.

Version 5.6.0 - Nov 29, 2018

Authentication

  • Added the ability to customize the dynamic link domain for email actions.

Version 5.5.9 - Nov 20, 2018

  • Updated mocha to version 5.2.0.

  • Corrected syntax errors for Realtime Database example in rxFire documentation.

Cloud Firestore

  • Capped the amount of exponential backoff gRPC will use for reconnection attempts to 100ms.

Version 5.5.8 - Nov 8, 2018

Authentication

  • Added a source map to faciliate easy debugging.

Version 5.5.7 - Nov 1, 2018

Cloud Functions for Firebase Client SDK

  • Added the type definition for the useFunctionsEmulator method in the Cloud Functions for Firebase Client SDK.

Version 5.5.6 - Oct 25, 2018

  • Changed to distribute component libraries in UMD format from the CDN.

Cloud Firestore

  • Fixed an issue where the library is not compatible with IE 11.

Version 5.5.5 - Oct 18, 2018

  • Updated documentation to include examples for typescript and native es6 module in Node.js environment.

  • Fixed the import path for Authentication in rxFire documentation.

Version 5.5.4 - Oct 11, 2018

Authentication

  • Fixed an issue where the this variable was changed to undefined incorrectly.

Cloud Firestore

  • Removed fallback based on eval() for JSON parsing, allowing SDK to be used in environments that prohibit eval() .

Version 5.5.3 - Oct 4, 2018

Cloud Firestore

  • Fixed an issue that prevented query synchronization between multiple tabs.
  • Start tracking document usage in preparation for LRU Garbage Collection.

Version 5.5.2 - Sep 27, 2018

  • Fixed a browser compatibility issue with Safari 9 when loading individual components using the CDN.

Cloud Firestore

  • Fixed an issue where native ES6 module loading was not working.

Authentication

  • Added a new phone auth error message for malformed or mismatching credentials.

Version 5.5.1 - Sep 19, 2018

  • Updated the dependency version for the closure compiler, so it works with Java 10.

Cloud Firestore

  • Fixed an issue where typings are created in the wrong location.

Realtime Database

  • Fixed an issue where typings are created in the wrong location.

Version 5.5.0 - Sep 12, 2018

  • Fixed an issue where typings for the firebase package were referenced incorrectly.

Cloud Firestore

  • Access to offline persistence is no longer limited to a single tab. You can opt into this new experimental mode by invoking enablePersistence() with {experimentalTabSynchronization: true} . All tabs accessing persistence must use the same setting for this flag.
  • 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 set(..., { merge: true }) .
  • Improved argument validation for several API methods.
  • Changed the internal handling for locally updated documents that haven't yet been read back from Cloud Firestore. 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, we buffer these events until the client has caught up with the server.

Version 5.4.2 - August 30, 2018

Authentication

  • Fixed an issue where the navigator global was unavailable in some environments.

Version 5.4.1 - August 23, 2018

Cloud Firestore

  • Fixed a regression that prevented use of Cloud Firestore on ReactNative's Expo platform (#1138).

Authentication

  • Fixed an isssue in the IndexedDB implementation that was slow for some browsers.
  • Fixed a memory leak in the IndexedDB implementation.

Version 5.4.0 - August 16, 2018

Cloud Firestore

  • Fixed get({source: 'cache'}) to be able to return nonexistent documents from cache.
  • Prepared the persistence layer to allow shared access from multiple tabs. While this feature is not yet available, all schema changes are included in this release. Once you upgrade, you will not be able to use an older version of the Firestore SDK with persistence enabled.
  • Fixed an issue where changes to custom authentication claims did not take effect until you did a full sign-out and sign-in. ( firebase/firebase-ios-sdk#1499 )

Version 5.3.1 - August 3, 2018

Cloud Firestore

  • Improved how Firestore handles idle queries to reduce the cost of re-listening within 30 minutes.
  • Improved offline performance with many outstanding writes.

Version 5.3.0 - July 19, 2018

Authentication

  • Fixed an issue where redirect results were being handled incorrectly for deleted Auth instances.

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 (firebase/firebase-ios-sdk#1548). Because some cache data is cleared, clients might use extra bandwidth the first time they launch with this version of the SDK.
  • Added firebase.firestore.FieldValue.arrayUnion() and firebase.firestore.FieldValue.arrayRemove() to atomically add and remove elements from an array field in a document.
  • Added 'array-contains' query operator for use with .where() to find documents where an array field contains a specific element.

Version 5.2.0 - June 28, 2018

Cloud Functions for Firebase Client SDK

  • Added a method that allows the Cloud Functions for Firebase Client SDK to use a local Functions Emulator.
  • Added support for specifying a region for a given function.

Realtime Database

  • Fixed an issue that caused database to not work on IE 11.

Version 5.1.0 - June 21, 2018

  • Fixed an issue with the typings where the firebase namespace wasn't being exported.

Authentication

  • Added an ES Module export of Firebase Auth
  • Fixed an issue with the IndexedDB fallback logic

Version 5.0.4 - May 24, 2018

  • Update the README.md files for our scoped packages on NPM (ie @firebase/app , @firebase/auth , @firebase/database , etc) to properly reflect the officially supported API.

FCM

  • Fixed an issue where VAPID keys weren't being handled correctly.

Cloud Firestore

  • Improved the messaging when unable to connect to the backend servers.

Realtime Database

  • Fixed the typings for forEach and forEachChild to properly support all valid return types.

Version 5.0.3 - May 17, 2018

  • Fixed a regression that was causing the import * as firebase from 'firebase'; syntax to fail.

FCM

  • Fixed an issue where the messaging types were inconsistent with our documentation.

Cloud Firestore

  • Updated our GRPC dependency which fixed an issue some users had during npm install .

Version 5.0.2 - May 10, 2018

  • Fixed an issue where some of the nested imports (eg firebase/app ) weren't exposing the proper types.

FCM

  • Changed a behavior where, if a VAPID key did not exist, an error was thrown.

Version 5.0.1 - May 8, 2018

  • Fixed an issue with our typings that was preventing Typescript apps from compiling.

Version 5.0.0 - May 8, 2018

  • Refactored the top-level Firebase entrypoints (eg import firebase from 'firebase'; ) to additionally include the Firestore and Functions components which were previously excluded by default. Developers using these bundles will find a warning in the browser console instructing them how to include only the components they are using, which will improve the performance of their applications.

Authentication

  • Exposes the new Auth.settings.appVerificationDisabledForTesting flag for disabling reCAPTCHA app verification used for phone authentication integration testing with whitelisted phone numbers.
  • Exposes the new Auth.updateCurrentUser API for copying firebase.User objects between Firebase apps.
  • Updated the return type signature for signInWithEmailAndPassword , signInWithCustomToken , signInAnonymously and createUserWithEmailAndPassword to return a promise that resolves with a UserCredential instead of a user.
  • Removed getToken API in favor of getIdToken and getIdTokenResult .
  • Deprecated signInWithCredential , linkWithCredential , reauthenticateWithCredential and fetchProvidersForEmail in favor of signInAndRetrieveDataWithCredential , linkAndRetrieveDataWithCredential , reauthenticateAndRetrieveDataWithCredential and fetchSignInMethodsForEmail .
  • Improved detection of external auth state changes for synchronizing Auth state between different windows.

Realtime Database

  • Removed the private path property from firebase.database.Reference .

Cloud Firestore

  • Merged the includeQueryMetadataChanges and includeDocumentMetadataChanges options passed to Query.onSnapshot() into a single includeMetadataChanges option.
  • QuerySnapshot.docChanges() is now a method that optionally takes an includeMetadataChanges option. By default, even when listening to a query with { includeMetadataChanges:true } , metadata-only document changes are suppressed in docChanges() .
  • Added new { mergeFields: (string|FieldPath)[] } option to set() which allows merging of a reduced subset of fields.

Storage

  • Removed the previously deprecated FullMetadata.downloadURLs and UploadTaskSnapshot.downloadURL properties.

Version 4.13.0 - April 19, 2018

  • Added support for an alternate initializeApp syntax, to facilitate additional config options.
  • Fixed the version of our devDependencies throughout the SDK to ensure that build/test changes are picked up in future releases.
  • Refactored to use core-js for our Polyfills/Shims.

Authentication

  • Fixed an issue where navigator.onLine sometimes errantly reports false .
  • Fixed an issue where Firefox multi-tab/private mode browsing threw errors with our IndexedDB implementation.
  • Exposes the new getIdTokenResult API for firebase.User objects.

Cloud Firestore

  • Added a new Timestamp class to represent timestamp fields, currently supporting up to microsecond precision. It can be passed to API methods anywhere a JS Date object is currently accepted. To make DocumentSnapshot s read timestamp fields back as Timestamp s instead of Dates, you can set the newly added flag timestampsInSnapshots in FirestoreSettings to true . Note that the current behavior ( DocumentSnapshot s returning JS Date objects) will be removed in a future release. Timestamp supports higher precision than JS Date.
  • Added ability to control whether DocumentReference.get() and Query.get() should fetch from server only, (by passing { source: 'server' } ), cache only (by passing { source: 'cache' } ), or attempt server and fall back to the cache (which was the only option previously, and is now the default).

FCM

  • Fixed an issue where getToken was throwing errors in Worker environments.
  • General cleanup and hardening of the entire messaging codebase. added Typescript types, additional tests, etc.

Storage

Version 4.12.1 - March 29, 2018

  • Fixed an issue where Typescript would throw errors due to duplicate symbols.

Authentication

  • Fixed an issue where several of the new APIs were missing from the firebase package typings.

Cloud Firestore

  • Fixed a regression in the Firebase JS release 4.11.0 that could cause get() requests made while offline to be delayed by up to 10 seconds (rather than returning from cache immediately).
  • Fixed an issue where some NPM users were seeing large performance degradations on Edge.
  • Fixed an issue where several APIs were missing from the firebase package typings.

FCM

  • Improved error messaging around the useServiceWorker function to better communicate the intended use case.

Version 4.12.0 - March 20, 2018

Authentication

Cloud Functions for Firebase Client SDK

This release contains the new Firebase Functions Client SDK, with support for HTTPS Callable Functions. See Call Functions from Your App .

Cloud Firestore

  • Fixed a regression in the Firebase JS release 4.11.0 that could cause a crash if a user signs out while the client is offline, resulting in an error of "Attempted to schedule multiple operations with timer id listen_stream_connection_backoff".

Version 4.11.0 - March 8, 2018

Realtime Database

  • Fixed an issue where certain browser APIs weren't available in IE 11.
  • Added the ability to create a new reference from an existing database reference.

Cloud Firestore

  • If the SDK's attempt to connect to the Cloud Firestore backend doesn't succeed or fails within 10 seconds, the SDK will consider itself "offline", causing get() calls to resolve with cached results, rather than continuing to wait.

Version 4.10.1 - February 22, 2018

  • Did some internal refactoring to support the use of modern typescript APIs across the codebase (thanks merlinnot for the PR !)

Realtime Database

  • Fixed an issue where users were unintentionally receiving an "Invalid query string" warning (see this issue ).

FCM

  • Fixed an issue where some users received duplicate notifications.
  • Fixed an issue with a missing API in the typings.

Version 4.10.0 - February 15, 2018

Cloud Firestore

  • Fixed an issue where Microsoft Edge users were seeing slow response times.

Realtime Database

  • Allow users passing custom database URLs, to set the namespace via the ns query parameter.

FCM

  • Added the usePublicVapidKey API to facilitate custom server application key usage.

Version 4.9.1 - February 1, 2018

  • Fixed an issue where ES6 wildcard imports were breaking Closure Compiler (thanks @Doehl for the PR !)

Authentication

  • Fixed an issue with universal link subscriptions when multiple listeners are registered.

Realtime Database

  • Allow users to set the database URL to a localhost value (thanks @rynobax for the PR !)

Cloud Firestore

  • Fixed a regression in Firebase JS release 4.9.0 that could in certain cases result in an "OnlineState should not affect limbo documents." assertion crash when the client loses its network connection.

Version 4.9.0 - January 18, 2018

  • Snapshot listeners (with the includeMetadataChanges option enabled) now receive an event with snapshot.metadata.fromCache set to true if the SDK loses its connection to the backend. A new event with snapshot.metadata.fromCache set to false will be raised once the connection is restored and the query is in sync with the backend again.
  • 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 undefined instead of throwing an exception. A new QueryDocumentSnapshot class is introduced for Queries to reduce the number of undefined-checks in your code.
  • Added isEqual API to GeoPoint , Blob , SnapshotMetadata , DocumentSnapshot , QuerySnapshot , CollectionReference , FieldValue and FieldPath .
  • A "Could not reach Firestore backend." message will be logged when the initial connection to the Firestore backend fails.
  • A "Using maximum backoff delay to prevent overloading the backend." message will be logged when we get a resource-exhausted error from the backend.

Version 4.8.2 - January 11, 2018

  • Fixed some regressions that were introduced in the typings refactor from the last release.
  • Added the missing "author" field to the package.json files of each of the NPM packages.

Version 4.8.1 - December 18, 2017

  • Refactored the typings setup across the SDK.

Cloud Firestore

  • A "Could not reach Firestore backend." message will be logged when the initial connection to the Firestore backend fails.
  • A "Using maximum backoff delay to prevent overloading the backend." message will be logged when we get a resource-exhausted error from the backend.

Version 4.8.0 - December 7, 2017

Authentication

Cloud Firestore

  • Fixed an issue with the Firestore webchannel integration that prevented use of firestore in worker environments.

Version 4.7.0 - November 30, 2017

Cloud Firestore

  • Added Node.js support for Cloud Firestore (with the exception of offline persistence).
  • Refactor Webchannel integration to avoid extra CORS preflight requests.

Version 4.6.2 - November 9, 2017

Authentication

  • Fixed an issue where localStorage errors were not being caught properly.
  • Return auth/user-disabled instead of auth/internal-error when signing in with an OAuth provider using a disabled account.

Cloud Firestore

  • Network streams are automatically closed after 60 seconds of idleness.
  • We no longer log 'RPC failed' messages for expected failures.
  • Fixed an "Image is not defined" error when using Cloud Firestore from React Native.

Version 4.6.1 - November 2, 2017

  • Updated dependency versions across the different sub packages.

Authentication

  • Released the Open Source auth codebase.
  • Automatically resets the reCAPTCHA after the phone authentication flow is triggered to prevent the same reCAPTCHA token from being sent in subsequent calls.

Version 4.6.0 - October 19, 2017

Authentication

  • Added firebase.User.prototype.metadata which includes information about user creation time and last sign in time.
  • Added the isNewUser property to firebase.auth.AdditionalUserInfo , which is returned by sign in methods to indicate whether a user is a new or returning user.
  • Fixed a TypeError thrown after manually clearing localStorage

Realtime Database

  • Fixed a regression introduced in version 4.5.1 where authenticated user info was not properly being passed to the server, causing reads and writes to fail with permission_denied errors.

Cloud Firestore

  • Fixed the validation of nested arrays to allow indirect nesting.
  • We now support FieldValue.delete() sentinels in set() calls with {merge:true} .

Version 4.5.2 - October 16, 2017

  • Fixed an issue where the "react-native" property was missing from the firebase package.json.
  • Fixed an issue where firebase.SDK_VERSION was returning the placeholder string.

Version 4.5.1 - October 12, 2017

  • Refactored the internal module structure to make our package more modular and easier to maintain.

Cloud Firestore

  • Fixed an issue causing exceptions when trying to use firebase.firestore.FieldPath.documentId() in an orderBy() or where() clause in a query.

Version 4.5.0 - October 2, 2017

Version 4.4.0 - September 21, 2017

Authentication

  • Fixed some issues with null initialization of several classes in the externs files.

Realtime Database

Version 4.3.1 - September 7, 2017

Authentication

  • Fixed issue with typings for features released in 4.3.0

Version 4.3.0 - August 17, 2017

Authentication

  • Added client side localization for email actions (password reset, email verification, etc), phone authentication SMS messages, OAuth flows and reCAPTCHA verification.
  • Added the ability to pass a continue URL/state when triggering a password reset/email verification which gives a user the ability to go back to the app after completion. In addition, added support for the ability to open these links directly from a mobile app instead of a web flow using Firebase Dynamic Links. See the docs for more information.
  • Fixed issue with IE10 state synchronization across tabs

Version 4.2.0 - July 27, 2017

Authentication

  • Added ability to configure state persistence. See the docs for more information.
  • Added missing phoneNumber property on provideData objects.
  • Fixed temporary error message when opening a popup for sign-in, prominent in some IE browsers.
  • Refactored to not use navigator.onLine for offline detection in Cordova environments.

Realtime Database

  • Fixed an issue where database references were missing a toJSON method.

Version 4.1.5 - July 25, 2017

Authentication

  • Fixed an issue where authenticated realtime database access wasn't possible.

Version 4.1.4 - July 24, 2017

  • Bundle size improvements for firebase-app.js , firebase-storage.js , firebase-messaging.js .

Realtime Database

  • Refactored internal implementation to TypeScript.

Version 4.1.3 - June 21, 2017

  • Fixed an issue where certain app names were invalid

Authentication

  • Fixed an issue with the PhoneAuthProvider typings
  • Fixed an issue where network errors from signInWithRedirect were cached even after the network connection stabilized.
  • Fixed an issue where Cordova OAuth redirects in iOS apps were failing due iOS bundle ID case sensitive checks.

Version 4.1.2 - June 6, 2017

  • Fixed an issue where sourcemaps weren't pointing to the actual Typescript source code.
  • Fixed an issue where FirebaseAppImpl.prototype was being incorrectly patched.
  • Fixed an issue where loading the SDK from our CDN, while also providing a chunked webpack build, was duplicating the webpackJsonp namespace.

Version 4.1.1 - May 31, 2017

  • Fixed an issue where the default storage bucket was not being initialized correctly.

Version 4.1.0 - May 30, 2017

  • Allow for lazy initialization of Firebase components (ie Authentication, Realtime Database, Storage, FCM).

Authentication

  • Fixed an issue where the SDK could trigger an infinite loop when loaded in an iFrame on Safari.

Version 4.0.0 - May 17, 2017

Authentication for Servers

  • Removed support for deprecated serviceAccount and credential properties from the Node.js SDK. If you were previously using the Firebase Javascript SDK to use these properties, use the Firebase Admin Node.js SDK instead.

Authentication

Version 3.9.0 - April 25, 2017

Authentication

  • Deprecated firebase.auth.authCredential.prototype.provider in favor of the firebase.auth.AuthCredential.prototype.providerId property.
  • Fixed an issue where Cordova apps were seeing unusual delays in authentication.

Version 3.8.0 - April 18, 2017

  • Provide source maps for firebase-app.js.

Authentication

Version 3.7.8 - April 14, 2017

  • Fixed an issue where npm-shrinkwrap.json was not being generated correctly.

Version 3.7.7 - April 14, 2017

  • Fixed an issue where undefined symbols caused an error to be thrown in older browsers.

Version 3.7.6 - April 11, 2017

Authentication

  • Fixed an issue where removal of a legacy options object broke older clients.

Version 3.7.5 - April 4, 2017

Storage

  • Provide higher-granularity progress updates for object uploads.

Version 3.7.4 - March 28, 2017

Realtime Database

  • Fixed an issue where firebase.database().ref().push() , would trigger an infinite loop if the returned .then() function was called.

Authentication

  • Fixed an issue where firebase.User.reauthenticate() was creating new users if passed an OAuth credential for a user that didn't exist.

Version 3.7.3 - March 21, 2017

Realtime Database

  • Fixed error messaging for invalid calls to Query.equalTo() .

Version 3.7.2 - March 14, 2017

  • Fixed an issue where some components erroneously allowed creation of multiple instances.

Version 3.7.1 - March 9, 2017

Authentication

  • Updated firebase.auth().signInWithPopup() to work properly in Chrome extensions.
  • Improved session handling for prolonged usage of the Realtime Database.

Version 3.7.0 - March 1, 2017

Storage

  • Added support for using multiple buckets within Storage.

Version 3.6.10 - February 21, 2017

Storage

  • Fixed an issue where the catch() method didn't exist on UploadTask .

Version 3.6.9 - February 7, 2017

Authentication

  • Fixed an issue that broke firebase.auth().signInWithCredential() in a browser environment when the current URL has the OAuth 2.0-specific state query parameter.

Version 3.6.8 - January 31, 2017

  • Fixed an issue with some module bundlers. The npm (commonjs) modules no longer require a global variable to be set explicitly and fallback to window or self if global is not defined.

Authentication

  • Increased authentication timeouts for network requests to handle slow network connections.
  • Fixed authentication module Node.js detection to be compatible with browserify.
  • Modified firebase.auth().signInWithPopup() to work for apps embedded in a sandboxed iframe.
  • Fixed the Android Chrome bug for triggering internal-errors in firebase.auth().signInWithPopup()
  • Fixed an issue that broke firebase.auth().signInWithCredential() and firebase.auth().fetchProvidersForEmail() in non http/https environments like chrome-extensions.
  • Fixed progress bar styling in the OAuth helper for popup/redirect operations.

Version 3.6.7 - January 24, 2017

  • Improved Firebase app errors to return error codes prefixed with app/ consistent with other Firebase service errors.

Version 3.6.6 - January 17, 2017

  • Fixed support for TypeScript and ES6 imports of individual SDK modules (see the npm package README for more information).

Authentication

  • Fixed an issue on Chrome for iOS where a blank gray screen was being displayed when signInWithPopup() does not require additional user interaction (because the user is already signed in and has previously consented to the requested scopes).

Version 3.6.5 - January 10, 2017

Storage

Version 3.6.4 - December 13, 2016

Realtime Database

Storage

  • Fixed an issue where percent-encoded data in a data URL was not decoded.

Authentication

  • Optimized offline detection to reduce the frequency of network timeouts.

Version 3.6.3 - December 6, 2016

  • Changed the packaging of browser npm modules to fix an issue that occurred when using Cloud Storage with the Browserify and webpack module bundlers.

Version 3.6.2 - November 29, 2016

  • Updated file attributes in the Firebase npm package to be compatible with the Yarn Package Manager .
  • Updated the jsonwebtoken version used in the Firebase npm package.

Authentication

  • Fixed an issue that prevented user authentication states from persisting when using Firebase Authentication with React Native versions 0.37 and higher.

Version 3.6.1 - November 15, 2016

Storage

  • Reduced the SDK download size.
  • Fixed networking issues affecting React Native on Android.

Authentication

  • Added missing definitions for setCustomParameters() methods in the firebase.d.ts file for TypeScript users.

Version 3.6.0 - November 8, 2016

Authentication for Servers

  • SDK authentication with a service account on Node.js, and the corresponding token minting and verification methods, has been deprecated in favor of a new Node.js Admin SDK. To learn more, go to Admin SDK Setup . To see the Node.js Admin API reference, go to Admin SDK API Reference .

Authentication

  • Fixed an incorrect popup blocked error that occurred in the Chrome browser on iOS 7 and 8.

Version 3.5.3 - November 1, 2016

  • Reduced the SDK download size.

Authentication

  • Fixed issues with redirect and pop-up sign-in methods when using browsers that block third-party cookies and site data.

Version 3.5.2 - October 24, 2016

Authentication

  • Increase the request timeout interval for mobile devices to improve performance on high-latency networks.

Version 3.5.1 - October 19, 2016

Cloud Messaging

  • Added a check to validate the gcm_sender_id .
  • Fixed a race condition that occurs when using the Firefox web browser.

Version 3.5.0 - October 14, 2016

Authentication

Cloud Messaging

Version 3.4.1 - September 27, 2016

Realtime Database

  • Ensure that the SDK does not prevent Node.js from shutting down the process. Calling firebase.database().goOffline() or firebase.app().delete() should be sufficient for Node.js to exit now.
  • Fixed a bug where the database inadvertently created a global variable on the window object.
  • Use of the update() 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

  • Improved network utilization for file uploads.

Version 3.4.0 - September 14, 2016

Realtime Database

  • New Query.isEqual() method allows for comparing any Reference or Query for equality.

Version 3.3.2 - September 8, 2016

Authentication

Version 3.3.1 - September 7, 2016

  • Added an error message when attempting to use a service account in non-Node.js environments.

Authentication

  • Fixed backend error messages that were being truncated.
  • Fixed an error where user properties were not automatically refreshed on page reload.
  • The user's credential and email are now returned when account linking throws the following errors: auth/credential-already-in-use and auth/email-already-in-use .
  • Modified the Facebook login and OAuth grant permissions screen to work better in popup-sized windows.
  • This release has an issue with signInWithPopup() not working with Internet Explorer. You can continue to use version 3.3.0 or earlier until this is fixed in a future release.

Storage

  • Fixed an issue where contentType in custom metadata was being ignored for string-format uploads.

Version 3.3.0 - August 16, 2016

Authentication

  • Client Authentication APIs are now available in Node.js. When you call intializeApp() , pass a serviceAccount to use the Authentication for Servers APIs in your app, or pass an apiKey to use the client Authentication APIs.
  • Network error handling for sign in and link with popup operations.
  • Long popup cancellation timeouts.
  • When you use signInWithRedirect , the onAuthStateChanged observer now waits until getRedirectResult resolves before triggering. (In older versions, the observer would trigger twice: once when the page loaded, and a second time when getRedirectResult resolved.)

Realtime Database

  • A warning is no longer logged if you don't provide an apiKey when initializing the SDK and just want to have unauthenticated access to your Realtime Database. Security Rules are still in effect even if you do not provide an apiKey .

Storage

Version 3.2.1 - July 26, 2016

  • Typescript 2.0 type definitions added to npm package.

Authentication

  • Fixed issues with Safari private mode.
  • More detailed debugging messages for internal errors.

Version 3.2.0 - July 12, 2016

Storage

  • UploadTask can now be used like a Promise, and resolves with its snapshot data when the upload completes.

Authentication

  • Github login responsiveness.
  • Missing display names in profile scope for some Google accounts.

Authentication for Servers

  • Added uid to the decoded token returned by verifyIdToken() . It is set to the ID token's sub (subject) claim.

Version 3.1.0 - June 28, 2016

Authentication

  • Replace use of browser-specific APIs that were blocking use of React Native from the JavaScript SDK.
  • The Node.js SDK now supports unauthenticated access. If no service account is provided, Realtime Database access will be restricted just as any unauthenticated client would be. In this case, certain methods (like creating and verifying tokens) will throw an error.

Version 3.0.5 - June 14, 2016

Authentication

  • Fixed JSON parsing error when used in Chrome extensions.
  • Corrected server URLs used by library when using localhost for debugging.

Storage

  • Allows use of "gs://bucket" instead of "bucket" in storageBucket config.

Version 3.0.4 - June 7, 2016

Realtime Database

  • Updated the reference documentation to include more extensive API descriptions and examples.
  • Improved Realtime Database authentication-expiration retry logic.

Authentication

  • When using Firebase Web SDK in a non http or https environment (Cordova or Electron apps for instance), instead of raising a confusing error on initialization, it will silently ignore it. It will only throw an auth/operation-not-supported-in-this-environment error when trying to use unsupported operations ( signInWithPopup , signInWithRedirect , linkWithPopup , linkWithRedirect and getRedirectResult ).

Storage

  • Generate more specific error message when quota is exceeded.

Version 3.0.3 - May 24, 2016

Authentication

  • Improved error messages.

Authentication for Servers

  • Global Promise object is no longer overwritten.
  • Added error message when initializing the Node.js SDK with an invalid service account.

Version 3.0.2 - May 19, 2016

  • Browserify and webpack compatibility.

Version 3.0.1 - May 18, 2016

  • Node.js version 0.10 support.

Version 3.0.0 - May 18, 2016

Realtime Database

  • The way you install and initialize the SDK has changed and several APIs have been renamed. When you decide to upgrade, please see the Web Migration Guide for detail.
  • The way you install and initialize the Node.js has also changed. APIs have been renamed and you now authenticate using a service account instead of a secret or custom token. When you choose to upgrade, please see the Database Server SDK Setup Guide and use the Web Migration Guide to help you update your Node.js code to the latest APIs.

Authentication

  • The way you install and initialize the SDK has changed and most APIs have been renamed. When you decide to upgrade, please see the Web Migration Guide for details.
  • Node.js server SDK:
    • Token minting and verification for Firebase Authentication is now built into the server SDKs themselves instead of in separate token minting libraries.
    • All of the existing authentication methods have been removed. Instead, use the databaseAuthVariableOverride option (Node.js) or when initializing the SDK. See Installation & Setup for Servers for more details.
    • Use the Web Migration Guide or to help you update your Node.js or Java code to the latest APIs.

Storage

  • Initial release of Cloud Storage. Cloud Storage provides secure file uploads and downloads for your Firebase apps, regardless of network quality. You can use it to store images, audio, video, or other user-generated content. Cloud Storage is backed by Google Cloud Storage , a powerful, simple, and cost-effective object storage service.

Legacy release notes

Firebase 1.0 and 2.0 JavaScript Changelog