标签: firebase-authentication

firebase createUser没有登录

我的管理员用户可以创建其他用户,但每次创建用户时,我的管理员用户都已注销,新用户已自动登录,有没有办法在不登录的情况下创建用户?

firebase firebase-authentication

15
推荐指数
0
解决办法
1万
查看次数

更改Firebase包名称

我有一个与Firebase集成的Google Sign-In应用.我最近更改了应用包名称以用于发布目的.现在正在运行抛出此错误:

Error:Execution failed for task ':app:processDebugGoogleServices'.
> No matching client found for package name '<Package Name>'
Run Code Online (Sandbox Code Playgroud)

因此我猜测Firebase无法识别具有新软件包名称的应用程序.如何更改Firebase包名称.我已经通过Firebase控制台但找不到任何更改的包设置.或者有没有什么好方法来实现这一点,而不是再次使用包名和代码创建新项目?任何帮助,将不胜感激.

android firebase firebase-authentication

15
推荐指数
2
解决办法
2万
查看次数

使用.NET Core的Firebase身份验证(JWT)

我正在开发一个处理Firebase身份验证的简单API - 稍后将用于Android客户端.

所以在Firebase控制台中我启用了Facebook和Google登录方法,并创建了一个示例html页面,我可以使用它来测试登录方法 - 下一个函数由按钮调用:

function loginFacebook() {
        var provider = new firebase.auth.FacebookAuthProvider();
        var token = "";
        firebase.auth().signInWithPopup(provider).then(function (result) {
            var token = result.credential.accessToken;
            var user = result.user;
            alert("login OK");
            user.getToken().then(function (t) {
                token = t;
                loginAPI();
            });
        }).catch(function (error) {
            var errorCode = error.code;
            var errorMessage = error.message;
            alert(errorCode + " - " + errorMessage);
        });
    }
Run Code Online (Sandbox Code Playgroud)

接下来我使用令牌并通过jQuery中的简单ajax调用将其发送到我的API:

function loginAPI()
{
    $.ajax({
        url: "http://localhost:58041/v1/Users/",
        dataType: 'json',
        type: 'GET',
        beforeSend: function (xhr) {
            xhr.setRequestHeader("Accept", "application/json");
            xhr.setRequestHeader("Content-Type", "application/json");
            xhr.setRequestHeader("Authorization", "Bearer …
Run Code Online (Sandbox Code Playgroud)

c# authentication asp.net-web-api firebase-authentication asp.net-core

15
推荐指数
2
解决办法
1万
查看次数

Android Firebase Rest API身份验证

我目前正在使用Firebase实时数据库开发应用程序,但是我选择省略使用SDK从数据库中检索数据.原因是我不希望我的代码与FireBase紧密相关,因为一旦应用程序构建,api本身将转移到基于自定义休息的api.

我根据文档使用REST和Firebase实现了api调用,没有问题 - POST,GET,DELETE等.

我遇到的问题是,如果我在数据库上启用任何类型的身份验证,根据我需要发送带有请求的"access_token"的文档,但是我不知道从哪里检索它. firebaseUser.getToken(true)返回看起来像JWT令牌的内容,如果我将其发送为无法识别"access_token".我明白了401 Unauthorized

我还按照说明设置了一个服务帐户,该帐户似乎生成了一个有效的令牌,但它并没有唯一地标识用户.

所以我的问题是,任何人都可以指出我如何获得所需的访问令牌,以识别哪个用户正在访问该API?我的Firebase项目支持的登录选项是Google,Facebook和Twitter.

android oauth-2.0 firebase firebase-authentication firebase-realtime-database

15
推荐指数
1
解决办法
2046
查看次数

如何将Firebase Auth Token从客户端传递到服务器?

我正在使用的网站使用Firebase身份验证,登录的不同用户对他们可以访问的页面拥有不同的权限.

登录的方式是设置类似于这篇文章:

  1. 用户使用两个参数登录 - "id"和"email"
  2. 服务器使用这些来创建自定义"uid",然后使用Firebase Admin SDK创建发送回客户端的自定义令牌.
  3. 客户端使用Javascript Firebase SDK登录 - firebase.auth().signInWithCustomToken()
  4. 现在用户已登录,他们可以点击不同的页面 - 即'/ foo','/ bar'

我遇到的问题是,当他们访问新页面时,我正在尝试将令牌从客户端传递回服务器(几乎与在此Firebase文档中完成的方式相同),验证令牌并检查是否存在有权查看网页.

我正在努力找出最好(也是最安全)的方法.我考虑过以下选项:

  • 用令牌构造一个URL,但我听说这不是一个好习惯,因为令牌暴露,会话劫持变得容易多了.

我一直在尝试在请求标头中传递令牌,但据我所知,当用户点击指向其他页面的链接时(或者如果它在javascript中重定向),您无法添加标头.同样的问题适用于使用POST.

如果用户点击指向其他页面的链接,我该如何安全地将此信息传递到服务器并检查权限?

authentication firebase firebase-authentication

15
推荐指数
1
解决办法
4540
查看次数

在部署firebase项目时,错误显示"找不到模块firebase-functions"

当我尝试部署firebase项目时,它在npm控制台中显示错误消息"找不到模块firebase-functions".我所做的步骤(节点命令)是:

  1. npm install -g firebase-tools
  2. firebase登录
  3. firebase init

最后我坚持的地方是
4. firebase 部署

请帮我.

node.js firebase firebase-hosting firebase-authentication firebase-realtime-database

15
推荐指数
3
解决办法
7341
查看次数

Node.js -Firebase服务帐户私钥不会解析

.env在app.js文件中使用变量来访问密钥.一切都很好,直到我下载了一个新的Firebase Service Account Private Key.当我用新值替换旧值时,我无法再访问密钥,因为在terminal运行时node app.js我不断收到错误消息:

/Users/Cpu/Desktop/...../node_modules/firebase-admin/lib/auth/credential.js:129抛出新的错误_1.FirebaseAppError(error_1.AppErrorCodes.INVALID_CREDENTIAL,'无法解析私钥:'+错误); ^

错误:无法解析私钥:错误:无效的PEM格式的消息.在FirebaseAppError.FirebaseError [作为构造函数](/Users/Cpu/Desktop/...../node_modules/firebase-admin/lib/utils/error.js:39:28)在FirebaseAppError.PrefixedFirebaseError [作为构造函数](/用户/ Cpu/Desktop /...../ node_modules/firebase-admin/lib/utils/error.js:85:28)新的FirebaseAppError(/Users/Cpu/Desktop/...../node_modules/firebase -admin/lib/utils/error.js:119:28)新证书(/Users/Cpu/Desktop/...../node_modules/firebase-admin/lib/auth/credential.js:129:19)在新的CertCredential(/Users/Cpu/Desktop/...../node_modules/firebase-admin/lib/auth/credential.js:192:64)在Object.cert(/ Users/Cpu/Desktop/... ..)在对象.(/Users/Cpu/Desktop/...../app.js:14:32)在Module._compile(module.js:571:32)的Object.Module._extensions..js(module.js:580) :10)在Module.load(module.js:488:32)的FirebaseAppError.FirebaseError [作为构造函数] npm ERR!代码ELIFECYCLE npm ERR!错误1

我所做的只是c + p新的Private Key,然后添加它并保存.env文件,推送到heroku,它不再工作.我甚至下载了一个新的Private Key但同样的问题.

新旧私钥

// old Private Key
-----BEGIN PRIVATE KEY-----\nbbbbbbbb\n-----END PRIVATE KEY-----\n

// new Private Key
-----BEGIN PRIVATE KEY-----\nzzzzzzzz\n-----END PRIVATE KEY-----\n
Run Code Online (Sandbox Code Playgroud)

.env文件:

FIREBASE_PROJECT_ID=wwwwwwww
FIREBASE_CLIENT_EMAIL=xxxxxxxx
FIREBASE_DATABASE_URL=yyyyyyyy
FIREBASE_PRIVATE_KEY=-----BEGIN PRIVATE KEY-----\nzzzzzzzz\n-----END PRIVATE KEY-----\n
Run Code Online (Sandbox Code Playgroud)

app.js文件:

const dotenv = require('dotenv');
dotenv.load();

var admin = require("firebase-admin"); …
Run Code Online (Sandbox Code Playgroud)

parsing json node.js npm firebase-authentication

15
推荐指数
2
解决办法
3847
查看次数

在中国使用Firebase身份验证和Firestore

使用Firebase堆栈进行Chrome扩展:)但是,有一个很大的问题.

位于中国的用户无法使用该应用程序,因为谷歌被阻止,因此Firebase身份验证失败......好吧,一个选择是使用VPN,但就用户体验而言,这是一个很大的否否......有没有更好的方法来解决/解决此问题

主要使用firebase auth(Google提供商)和Firestore

可以使用某种方式自定义令牌来解决这个问题? https://firebase.google.com/docs/auth/admin/create-custom-tokens

或者外部身份验证服务与firebase结合使用,在这种情况下,还需要对firestore进行身份验证访问

firebase firebase-authentication google-cloud-firestore

15
推荐指数
1
解决办法
1870
查看次数

Flutter:如何收听 FirebaseUser 是电子邮件验证布尔值?

我的想法: 我想在 Flutter 中使用 Firebase Auth 插件来注册用户。但在他们可以访问应用程序之前,他们必须验证他们的电子邮件地址。因此,我在注册后将 Firebase 用户推送到验证屏幕。这只是一个加载屏幕,告诉用户他必须验证他的电子邮件。

但是现在:如果用户的电子邮件是否经过验证并将他(如果为真)发送到主屏幕,我该如何持续收听?

我是 Flutter 的新手,我不知道我是否必须使用 Streams 或 Observables 或 while Loop 或 setState() 或其他东西来进行这样的布尔检查。而且我也不知道如何设置解决方案。

这是我注册用户的基本代码:

import 'package:cloud_firestore/cloud_firestore.dart';
import 'dart:async';

class AuthService {
  final FirebaseAuth _auth = FirebaseAuth.instance;
  final Firestore _db = Firestore.instance;

  Future<FirebaseUser> get getUser => _auth.currentUser();

  Stream<FirebaseUser> get user => _auth.onAuthStateChanged;

  Future<FirebaseUser> edubslogin(String email, String password) async {
    try {
      final FirebaseUser user = await _auth.createUserWithEmailAndPassword(
        email: email,
        password: password,
      );
     
      await user.sendEmailVerification();
      
      //email verification somewhere here
    
      updateUserData(user);
      return user; …
Run Code Online (Sandbox Code Playgroud)

state-management dart firebase firebase-authentication flutter

15
推荐指数
2
解决办法
1万
查看次数

引起:java.lang.ClassNotFoundException:在 Firebase 电话身份验证中找不到类

我通过 Firebase 在 Android Studio 中使用电话身份验证,我启用了电话登录并在 Firebase 项目中添加了 SHA-1 和 SHA-256。这是我所有的依赖项:

dependencies {

implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.2.1'
implementation 'androidx.constraintlayout:constraintlayout:2.0.2'
testImplementation 'junit:junit:4.13.1'
implementation 'com.hbb20:ccp:2.4.0'
implementation 'com.google.firebase:firebase-auth:20.0.0'
implementation 'com.google.firebase:firebase-analytics'
implementation platform('com.google.firebase:firebase-bom:26.0.0')
implementation 'com.google.android.gms:play-services-safetynet:17.0.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}
Run Code Online (Sandbox Code Playgroud)

这是错误日志:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.securechat, PID: 24159
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/browser/customtabs/CustomTabsIntent$Builder;
    at com.google.firebase.auth.internal.RecaptchaActivity.zza(com.google.firebase:firebase-auth@@20.0.0:92)
    at com.google.firebase.auth.api.internal.zzeq.zza(com.google.firebase:firebase-auth@@20.0.0:79)
    at com.google.firebase.auth.api.internal.zzeq.onPostExecute(com.google.firebase:firebase-auth@@20.0.0:88)
    at android.os.AsyncTask.finish(AsyncTask.java:695)
    at android.os.AsyncTask.access$600(AsyncTask.java:180)
    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:712)
    at android.os.Handler.dispatchMessage(Handler.java:106)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6692)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
 Caused by: java.lang.ClassNotFoundException: Didn't find …
Run Code Online (Sandbox Code Playgroud)

java android firebase-authentication

15
推荐指数
4
解决办法
1万
查看次数