Javascript firebase.auth().currentUser和onAuthStateChanged在登录后始终为null
firebase.auth().currentUser始终为null,就像我的node.js代码中的onAuthStateChanged侦听器一样。但是,用户已在我的前端swift应用程序中登录。正是从这里,我在firebase中调用了上面的node.js脚本。下面是我的代码片段。请看一看,让我知道如何解决这个问题 版本信息 firebase 3.17.5 npm 5.4.2 firebase SDK 5.0.4 平台信息 linux mac book air 17.2.0 代码:Javascript firebase.auth().currentUser和onAuthStateChanged在登录后始终为null,javascript,node.js,swift,firebase,firebase-authentication,Javascript,Node.js,Swift,Firebase,Firebase Authentication,firebase.auth().currentUser始终为null,就像我的node.js代码中的onAuthStateChanged侦听器一样。但是,用户已在我的前端swift应用程序中登录。正是从这里,我在firebase中调用了上面的node.js脚本。下面是我的代码片段。请看一看,让我知道如何解决这个问题 版本信息 firebase 3.17.5 npm 5.4.2 firebase SDK 5.0.4 平台信息 linux mac book air 17.2.0 代码: 您不能像这样
您不能像这样使用Firebase身份验证SDK。SDK只在客户端工作。您可以检测用户何时在设备(web、Android、iOS)上登录或注销,但在其他地方运行的代码无法设置这样的侦听器
如果您需要与后端就用户的登录状态进行通信,则必须编写一些代码来在前端和后端之间进行通信。如果我知道您是否更正了,这是您的后端代码?而不是前端(您登录用户的位置)?正确。从Doug的回答来看,似乎我必须从前端执行所有特定于用户的数据库写入。感谢您的回答!
'use strict';
const firebase = require('firebase');
const fireApp = require('firebase-app');
const functions = require('firebase-functions');
const fireAuth = require('firebase-auth');
const admin = require('firebase-admin');
const gcs = require('@google-cloud/storage');
const exec = require('child_process').exec;
const path = require('path');
const fs = require('fs');
const google = require('googleapis');
const sizeOf = require('image-size');
var config = {
apiKey: "Ahigdhvd_icvisQijbdsivdbbvb_blisdvchsblksdbs",
authDomain: "my_project.firebaseapp.com",
databaseURL: "https://my_project.firebaseio.com",
projectId: "my_project",
storageBucket: "my_project.appspot.com",
messagingSenderId: "2536384943632"
};
firebase.initializeApp(config);
admin.initializeApp(config);
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
console.log("user is signed in")
} else {
console.log("no user is signed in")
}
});