我正在为一个 web 应用程序和一个 android 应用程序制作一个 golang 后端。我使用 Firebase 进行身份验证。如果我理解得很好,:
authorization: Bearer <jwt>来调用我的 api如果我错了,有人可以纠正我吗?
我使用这个 html 测试页面来测试我的身份验证并记录令牌:
<html>
<head>
<meta charset="UTF-8">
<title>Sample FirebaseUI App</title>
<script src="https://cdn.firebase.com/libs/firebaseui/2.5.1/firebaseui.js"></script>
<link type="text/css" rel="stylesheet" href="https://cdn.firebase.com/libs/firebaseui/2.5.1/firebaseui.css" />
<script src="https://www.gstatic.com/firebasejs/4.9.1/firebase.js"></script>
<script>
var config = {
apiKey: "foo",
authDomain: "bar.firebaseapp.com",
databaseURL: "fizz.firebaseio.com",
projectId: "buzz-193910",
storageBucket: "john.appspot.com",
messagingSenderId: "doe"
};
firebase.initializeApp(config);
// Initialize the FirebaseUI Widget using Firebase.
var ui = new firebaseui.auth.AuthUI(firebase.auth());
var uiConfig = {
callbacks: …Run Code Online (Sandbox Code Playgroud) 我已将我的应用设置为使用电子邮件地址和密码成功登录或创建 Firebase 帐户。我现在想要做的是检查用户是否已验证他们的电子邮件,如果没有,则向他们发送 Firebase 允许我们编写的验证电子邮件。
@IBAction func createAccountTapped(_ sender: Any) {
if let email = emailTextfield.text, let password = passwordTextfield.text {
Auth.auth().createUser(withEmail: email, password: password, completion: { user, error in
if let firebaseError = error {
print(firebaseError.localizedDescription)
return
}
self.presentTabBar()
})
}
}
@IBAction func loginTapped(_ sender: Any) {
if let email = emailTextfield.text, let password = passwordTextfield.text {
Auth.auth().signIn(withEmail: email, password: password, completion: {(user, error) in
if let firebaseError = error {
print(firebaseError.localizedDescription)
return
}
self.presentTabBar()
})
}
} …Run Code Online (Sandbox Code Playgroud) 我已经成功地在我使用 Firebase 的应用中实现了一个谷歌登录。当我第一次使用谷歌账户登录时,会出现一个选择谷歌账户的对话框。
但是在我成功登录然后注销后,当我再次尝试登录时,选择谷歌帐户的对话框不再出现,它只是直接将我发送到主菜单。
每次用户通过谷歌登录时,我都希望始终显示该对话框。这是我使用的代码,在我的 VC 中有谷歌登录按钮
import UIKit
import Firebase
import GoogleSignIn
import SVProgressHUD
class AuthenticationVC : UIViewController, GIDSignInUIDelegate, GIDSignInDelegate {
var userID : String?
override func viewDidLoad() {
super.viewDidLoad()
// delegate declaration
GIDSignIn.sharedInstance().uiDelegate = self
// For Google SignIn Using Firebase
GIDSignIn.sharedInstance().clientID = FirebaseApp.app()?.options.clientID
GIDSignIn.sharedInstance().delegate = self
}
@IBAction func googleButtonDidPressed(_ sender: Any) {
GIDSignIn.sharedInstance().signIn()
}
}
extension AuthenticationVC {
// MARK: - Firebase Google Sign In Authentication Methods
// The methods below will be triggered if the …Run Code Online (Sandbox Code Playgroud) 我需要为名为“测试用例”的子集合创建一个 firestore 规则。由于 Firestore 规则不是用 javascript 编写的,因此我似乎无法在匹配后获得路径以接受空格而不会出错。
我试过引号,转义字符的反斜杠,并将整个路径放在引号中。我在 firestore 文档或堆栈溢出中没有找到任何相关内容。
如何在匹配后的路径中允许空格,在下面的示例中,在包含“测试用例”的路径中?
service cloud.firestore {
match /databases/{database}/documents {
match /companies/{company} {
allow read: if getUserCompany() == company || userHasAnyRole(['Super', 'Manager']);
allow write: if getUserCompany() == company || userHasAnyRole(['Super', 'Manager']);
match /Test Cases/{tests} {
allow read, write: if isSignedIn();
}
}
Run Code Online (Sandbox Code Playgroud) firebase firebase-security firebase-authentication google-cloud-firestore
我不想使用 Firebase 中的内置电子邮件系统,而是想使用名为 SMTP2Go 的 SMTP,但想知道如何连接它以及是否需要先购买我自己的电子邮件域?将 SMTP 连接到 Firebase 需要什么要求?
我正在使用 firebase admin 创建新用户。该用户有电话号码。当我像这样填写电话号码“7777777”时,我的 Firebase 管理员响应出现了正确的错误:
{
Error: The phone number must be a non-empty E.164 standard compliant identifier string.
at FirebaseAuthError.FirebaseError [as constructor]
...
...
errorInfo:
{ code: 'auth/invalid-phone-number',
message: 'The phone number must be a non-empty E.164 standard
compliant identifier string.'
},
codePrefix: 'auth' }
Run Code Online (Sandbox Code Playgroud)
但是,如果我填写这样的数字“+7777777”,我的 Firebase 管理员回复是:
{ Error: An internal error has occurred. Raw server response:
"{"error":{"code":400,"message":"INVALID_PHONE_NUMBER : TOO_SHORT","errors":
[{"message":"INVALID_PHONE_NUMBER : TOO_SHORT","domain":"global","reason":"invalid"}]}}"
at FirebaseAuthError.FirebaseError [as constructor] ...
errorInfo:
{ code: 'auth/internal-error',
message: 'An internal error has …Run Code Online (Sandbox Code Playgroud) 我在我的 iOS 应用程序中创建了匿名用户,我想知道当应用程序更新时,用户匿名会话是否会持续?因为更新应用程序时应用程序被删除但不是所有内容(UserDefault例如持续存在)
我有一个像这样的 firebase 配置文件:
import { firebase } from "@firebase/app";
import "@firebase/firestore";
const firebaseApp = firebase.initializeApp({
apiKey: "myKey",
authDomain: "myDomain",
databaseURL: "myURL",
projectId: "myProject",
storageBucket: "myBucket",
messagingSenderId: "999999999"
});
export const db = firebaseApp.firestore();
export const firebaseApp = firebaseApp;
Run Code Online (Sandbox Code Playgroud)
我正在尝试对用户进行身份验证,但不断收到 firebaseApp.auth() 不是一个函数。
let me = db.collection('staff').where('email', '==', this.current_user.email)
.get()
.then((querySnapshot) => {
querySnapshot.forEach((doc) => {
this.fbUser = doc.id;
let email = doc.data().email;
let pw = doc.data().key;
firebaseApp.auth().onAuthStateChanged(user => {
if (user) {
//console.log('Already authenticated.');
} else {
firebaseApp.auth().signInWithEmailAndPassword(email, pw)
.then(liu => …Run Code Online (Sandbox Code Playgroud) 如何通过获取他的电话号码登录现有用户。我不想在登录时发送验证,因为它已经在注册时发送
我想用用户名和密码注册用户
需要安卓代码
在我的 firebase 项目中,我实现了 Google 身份验证。
我的 Firebase 规则如下所示:
{
"rules": {
"users": {
"$uid": {
".read": "auth.uid == $uid",
".write": "auth.uid == $uid"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
每次我尝试模拟。Firebase 说“模拟读取被拒绝”。
我在这里做错的任何想法?
firebase firebase-security firebase-authentication firebase-realtime-database