Firebase с расширением Chrome - не получает событие onAuthStateChange в скрипте содержимого - PullRequest
0 голосов
/ 28 марта 2020

Я не смог авторизоваться с помощью firebase из скрипта контента (signInWithPopup открывает пустое всплывающее окно, которое ничего не делает с предупреждением повара ie - связанная с github проблема ), поэтому Я переместил его в сценарий popup, где он работает.

Затем я попробовал signInWithCredential так же, как здесь, и поток работает, но опять же ничего в скрипте содержимого: https://github.com/firebase/quickstart-js/tree/master/auth/chromextension

Вот мой манифест. json:

{
  "name": "...",
  "version": "1.0",
  "description": "",
  "manifest_version": 2,
  "key": "...",
  "permissions": [
    "tabs",
    "activeTab",
    "background",
    "storage",
    "identity",
    "cookies",
    "https://*/*"
  ],
  "content_security_policy": "script-src 'self' 'unsafe-eval' https://www.gstatic.com/ https://*.firebaseio.com https://www.googleapis.com https://apis.google.com https://google.com https://www.googletagmanager.com; object-src 'self'",
  "background": {
    "scripts": ["background.js"],
    "persistent": false
  },
  "browser_action": {
    "default_popup": "popup.html",
  },
  "content_scripts": [
    {
      "js": ["contentscript.js"],
      "matches": ["..."]
    }
  ],
  "oauth2": {
    "client_id": "...",
    "scopes": [
      "https://www.googleapis.com/auth/userinfo.email",
      "https://www.googleapis.com/auth/userinfo.profile"
    ]
  }
}

Оба сценария background.js и сценарий popup.html/popup.js получают изменения состояния авторизации в onAuthStateChanged. Однако мой contentscript.js никогда не получает изменения авторизации (только начальное с null для пользователя). Все они инициализируют firebase одинаково и используют один и тот же конфигурационный файл init.

Я знаю, что могу отправлять сообщения в скрипт контента, но не уверен, а) что отправить или б) как обновить аутентификацию firebase с помощью аутентификационный токен. Или в противном случае кто-нибудь знает, как выполнить вход из сценария содержимого, который в любом случае предпочтительнее? Было бы лучше отказаться от oauth и использовать адрес электронной почты / пароль? Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...