Цель: я хочу узнать, как использовать пользовательские токены с FireStore.
Предварительно: я пытаюсь следовать примеру firebase curl by
curl "https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=AIzaSyCO0B7UXo2OcfhXQ2gBxHAPuN5muusiIFw" -H 'Content-Type: application/json' --data-binary '{"token":"123456","returnSecureToken":true}'
, и я получил
{
"error": {
"code": 400,
"message": "MISSING_CUSTOM_TOKEN",
"errors": [
{
"message": "MISSING_CUSTOM_TOKEN",
"domain": "global",
"reason": "invalid"
}
]
}
}
curl: (6) Could not resolve host: application
Команда curl, указанная выше, была заполнена моим «Ключом Firebase Web API», скопированным из Firebase / My Project / General / Web Api Key. Затем я добавил токен только для проверки «123456». Если я правильно понял документацию, я должен вернуть токен.
Моя конечная цель - добавить пользовательский токен в мой проект Firebase, который позволяет клиенту Angular подключаться к Firestore и получать уведомления, когда документ изменено.
Для создания токена Custon лучший шаг, который я нашел, - это Stackoverflow Custom Token Question . Поэтому я пытаюсь создать его: 1021 *
и я получил
C:\WSs\FireStoreDemos\firestore-custom-token>node server
C:\WSs\FireStoreDemos\firestore-custom-token\node_modules\firebase-admin\lib\auth\token-generator.js:205
throw new error_1.FirebaseAuthError(error_1.AuthClientErrorCode.INVALID_ARGUMENT, errorMessage);
^
FirebaseAuthError: `developerClaims` argument must be a valid, non-null object containing the developer claims.
at FirebaseAuthError.FirebaseError [as constructor] (C:\WSs\FireStoreDemos\firestore-custom-token\node_modules\[4mfirebase-admin[24m\lib\utils\error.js:42:28)
at FirebaseAuthError.PrefixedFirebaseError [as constructor] (C:\WSs\FireStoreDemos\firestore-custom-token\node_modules\[4mfirebase-admin[24m\lib\utils\error.js:88:28)
at new FirebaseAuthError (C:\WSs\FireStoreDemos\firestore-custom-token\node_modules\[4mfirebase-admin[24m\lib\utils\error.js:147:16)
at FirebaseTokenGenerator.createCustomToken (C:\WSs\FireStoreDemos\firestore-custom-token\node_modules\[4mfirebase-admin[24m\lib\auth\token-generator.js:205:19)
at Auth.BaseAuth.createCustomToken (C:\WSs\FireStoreDemos\firestore-custom-token\node_modules\[4mfirebase-admin[24m\lib\auth\auth.js:94:36)
at Object.<anonymous> (C:\WSs\FireStoreDemos\firestore-custom-token\server.js:12:14)
[90m at Module._compile (internal/modules/cjs/loader.js:1147:30)[39m
[90m at Object.Module._extensions..js (internal/modules/cjs/loader.js:1167:10)[39m
[90m at Module.load (internal/modules/cjs/loader.js:996:32)[39m
[90m at Function.Module._load (internal/modules/cjs/loader.js:896:14)[39m {
errorInfo: {
code: [32m'auth/argument-error'[39m,
message: [32m'`developerClaims` argument must be a valid, non-null object containing the developer claims.'[39m
},
codePrefix: [32m'auth'[39m
}
Итак, мой главный вопрос: чего мне не хватает, чтобы создать Custom Token с curl выше? Так как это пользовательский токен, по крайней мере для Hello World, я могу использовать очень простой токен, такой как «123456», верно?
Дополнительный вопрос, на сервере выше. js, я предоставляю право ожидается файл в admin.credential.cert?