Как импортировать firebase в скрипт приложений Google, чтобы создавать пользователей с провайдером Google? - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь создать нового пользователя в firebase через провайдера Google Auth либо автоматически, либо нажатием кнопки в аддоне боковой панели в листах Google.Причина в том, что мне нужно получить зарегистрированный uid для пользователя, чтобы данные, которые я отправляю с листов, можно было отнести к этому пользователю.

Самая близкая вещь, которую я нашел в руководстве, - this, но я застреваю при попытке импортировать FireBase.

Один из методов, которые я часто наблюдаю, это импортировать его через тег script в html для боковой панели листов.

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <script>
      // Initialize Firebase
      var config = {
        apiKey: '...,
        authDomain: '...',
        databaseURL: '...',
        projectId: '...',
        storageBucket: '...',
        messagingSenderId: '...'
      };
      firebase.initializeApp(config);
    </script>
</body>
</html>

Однако, когда я пытаюсь использовать переменную firebase в моем скрипте .gs, она не определена.Как сделать его доступным для сценария?

Другой метод, который я видел, - это использование eval и URLFetchApp в сценарии gs.

eval(UrlFetchApp.fetch("https://www.gstatic.com/firebasejs/5.9.2/firebase.js").getContentText());

В результате SyntaxError: Missing name after . operator. Я думаю, это потому, что эта библиотека не предназначена для работы на узле js.

Я понимаю, что sdk администратора для firebase предназначен для узла js, но вы не можете создать пользователя с определенным поставщикомс этим методом (afaik).Также я не уверен, как бы я импортировал его в скрипт Google Apps в любом случае.Кроме того, я хочу, чтобы пользователь начал взаимодействовать с селектором учетной записи Google после запуска процесса создания пользователя.

У кого-нибудь есть предложения относительно того, как это сделать?

1 Ответ

1 голос
/ 03 апреля 2019

На самом деле довольно просто создавать новых пользователей в Firebase из Google Sheet с помощью Firebase Auth REST API .

Вы должны отправить HTTP POST запрос конечной точке Auth signupNewUser, подробный документ см. Здесь: https://firebase.google.com/docs/reference/rest/auth/#section-create-email-password

Для этого вы будете использовать fetch() метод класса URLFetchApp() в вашем скрипте gs, как показано ниже:

function createUser() {

  const userName = "john.doe@gmail.com";
  const pwd = "xyz987";

  const createUserUrl = "https://www.googleapis.com/identitytoolkit/v3/relyingparty/signupNewUser?key=[API_KEY]" //Replace with your Web API Key

  const payload = JSON.stringify({"email": userName, "password": pwd, "returnSecureToken": true});

  const createUserResponse = UrlFetchApp.fetch(createUserUrl, {
        method: 'post',
        contentType: 'application/json',
        muteHttpExceptions: true,
        payload : payload
 });

 Logger.log(JSON.parse(createUserResponse));

}

Вы получите ключ Web API для вашего проекта Firebase на странице настроек проекта в консоли администратора Firebase.

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