2015-01-09 22 views
5

Sau đây không mở cửa sổ bật lên/tab mới/làm bất cứ điều gì trên Chrome 39.0.2171.50 cho iOS 8.1.2 (12B440), tuy nhiên dường như nó hoạt động trên Safari cùng một thiết bị:

<button ng-click="$auth.$authWithOAuthPopup('facebook')">Login with Facebook</button> 

Xem plnkr: http://plnkr.co/edit/Ejd7fsyTHf6Ohn0F25Wy?p=preview

đây có phải là một lỗi với Chrome hoặc căn cứ hỏa lực/AngularFire hoặc tôi đang làm một cái gì đó không đúng?

Tôi thấy từ here rằng đây có thể là sự cố Chrome, tuy nhiên tôi không thể nhận được $authWithOAuthRedirect() để hoạt động; xem: http://plnkr.co/edit/9dd0W8X5k33LFBcCLmzs?p=preview

Cả Popup và Chuyển công việc trên Desktop Chrome 39.0.2171.95

+1

tôi đã cùng một vấn đề với safari trên Yosemite. Đã kết thúc bằng cách sử dụng $ authWithOAuthRedirect. – webduvet

Trả lời

4

căn cứ hỏa lực không hỗ trợ popup là mọi nền tảng. Trong trường hợp phát hiện nền tảng không được hỗ trợ, phương thức authWithOAuthPopup() sẽ trả về lỗi với mã TRANSPORT_UNAVAILABLE, cho biết rằng bạn nên cố gắng xác thực bằng phương tiện khác, chẳng hạn như chuyển hướng trình duyệt.

+0

Đủ công bằng. Có phải trong tài liệu ở đâu đó không? Bạn có biết cụ thể điều gì gây ra lỗi này trong một số trình duyệt không? –

+1

@MurraySmith Thật không may, nó không được tài liệu tốt, nhưng xuất hiện ở một vài nơi trong tài liệu Firebase, chẳng hạn như [Danh sách lỗi] (https://www.firebase.com/docs/web/guide/user-auth. html). –

+3

Thật không may, một số trình duyệt không hỗ trợ các tính năng cần thiết cho việc vận chuyển này. PhoneGap/Cordova/Ionic yêu cầu một shim (plugin InAppBrowser) để sử dụng 'window.open'. Chrome bị vô hiệu hóa tương tự trong iOS vì trước đây nó không có phương tiện đáng tin cậy cho 'window.open (...)' kết hợp với postMessage an toàn, cross-frame. Tương tự như vậy, chuyển hướng không khả dụng cho các ứng dụng PhoneGap/Cordova vì không có cơ chế chuyển hướng trình duyệt từ URL công khai, internet ngoài tới hệ thống tệp cục bộ nơi ứng dụng PhoneGap được tải từ đó. –

2

Iam không chắc chắn về ios nhưng nếu bạn sử dụng thiết bị Android cùng với ion và căn cứ hỏa lực, hãy chạy lệnh sau để khắc phục vấn đề này:

ionic plugin add cordova-plugin-inappbrowser 
Các vấn đề liên quan