天道酬勤,学无止境

firebase-authentication

Cloud Functions with Firebase: signInWithEmailAndPassword is not a function

问题 我开始使用Cloud Functions 和 Firebase编写代码。 以下函数中,testCreateUserAccount 成功。 testLogin 在运行时失败并出现类型错误,说明“ signInWithEmailAndPassword 不是函数” 从我在文档中看到的内容来看, createUser与signInWithEmailAndPassword属于同一类,所以我不清楚为什么尝试调用 signInWithEmailAndPassword 会失败。 有任何想法吗? 谢谢! "use strict"; var functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(functions.config().firebase); exports.testCreateUserAccount = functions.https.onRequest ((req, res) => { var email = "joe@example.com"; var password = "joejoe"; admin.auth().createUser({ email: email, password: password, disabled

2022-05-17 04:08:14    分类:技术分享    node.js   firebase   firebase-authentication   google-cloud-functions

Firebase Read Only With No Authentication from App

问题 我从 Firebase 开始,基本上,我只想将数据存储在 Firebase 中,而我的应用程序中的用户只会进行只读操作。 从我目前阅读的内容来看,firebase 似乎只适用于身份验证,而且我已经阅读了有关匿名身份验证的信息。 但我没有看到匿名身份验证的优势,因为基本上用户永远不会升级为“永久”用户。 我想要的只是用户使用我的应用程序(并且只能通过我的应用程序)来获取数据,而无需进行身份验证。 实现这一目标的最佳方法是什么? 我是否创建用户名和密码,并将其用于我的应用程序中的每个人? 我是否继续使用匿名身份验证? 由于我将首先使用 Firebase Spark Free,并且它说实时数据库只有 100 个同时连接,所以每次创建匿名身份验证都将被视为始终打开一个连接,因此将我的应用程序限制为 100 个连接/用户? Spark Free 在匿名连接方面是否有限制? 谢谢 回答1 您无需身份验证即可使用 Firebase。 Firebase 官方频道上的一些 Youtube 教程甚至向您展示了如何在 Firebase 数据库和存储上禁用身份验证。 仅出于生产目的禁用read身份验证。 存储规则。 数据库规则。

2022-05-17 02:52:47    分类:技术分享    firebase   firebase-realtime-database   firebase-authentication   firebase-security

Firebase authentication web: how to verify email address

问题 我是网络 Firebase 身份验证的新手。 我设法使注册表单正常工作,但在发送电子邮件以验证用户电子邮件地址时遇到了问题。 用户正常创建并出现在我的控制台中,但未发送验证电子邮件,并且我在 Chrome 中收到以下错误: 未捕获的类型错误:无法读取 null 的属性“sendEmailVerification” 这是我到目前为止的代码: "use strict"; (function () { // initialize firebase var config = { apiKey: "//api key", authDomain: "// etc", databaseURL: "// etc", projectId: "// etc", storageBucket: "// etc", messagingSenderId: "// etc" }; firebase.initializeApp(config); // get the login form elements from HTML var txtEmail = document.getElementById('txtEmail'); var txtPassword = document.getElementById('txtPassword'); var btnLogin = document

2022-05-16 23:54:08    分类:技术分享    javascript   email   firebase   firebase-authentication   verification

Data is not added to existing node in database

问题 我一直在尝试将数据添加到我的数据库中,但没有任何运气。 在我的代码中,我在单击时创建了一个按钮,它会将数据添加到我的用户数据库中,但不会将其添加到用户中,而只是将数据添加到外部,如下所示: 是因为使用 createUserWithEmailAndPassword() 函数时无法添加数据吗? 谁能告诉我它是如何完成的? btn.addEventListener("click", function() { firebase.auth().onAuthStateChanged(function(user) { if (user) { var massage = inputText.value; var ref = database.ref("Users"); var data = { display: massage } ref.push(data); } }); }); 回答1 每当您调用push() Firebase 时,都会生成一个新的唯一 ID。 因此,要将新数据添加到现有节点,您不应该调用 push。 相反,您需要为该用户找到对现有节点的引用。 最简单(也是迄今为止最常见)的方法是将用户数据存储在每个用户的 UID 下。 Users kHD...NoS username: "bob" 另请注意

2022-05-16 18:23:15    分类:技术分享    javascript   firebase   web   firebase-realtime-database   firebase-authentication

Secure HTTP trigger for Cloud Functions for Firebase

问题 回答1 const functions = require('firebase-functions'); const admin = require('firebase-admin'); const cors = require('cors')(); const validateFirebaseIdToken = (req, res, next) => { cors(req, res, () => { const idToken = req.headers.authorization.split('Bearer ')[1]; admin.auth().verifyIdToken(idToken).then(decodedIdToken => { console.log('ID Token correctly decoded', decodedIdToken); req.user = decodedIdToken; next(); }).catch(error => { console.error('Error while verifying Firebase ID token:', error); res.status(403).send('Unauthorized'); }); }); }; exports.myFn = functions.https.onRequest(

2022-05-16 15:50:08    分类:技术分享    firebase   firebase-authentication   google-cloud-functions

Firebase store user variables?

问题 我正在为我的初学者项目使用 Firebase,但我对提供的文档感到困惑。 我已经初始化了一个身份验证表单,它正在工作。 但我不明白如何将它链接到实时数据库? 我知道 (user) 是当前登录的用户,但是如何存储当前用户的信息? 在我的应用程序中,每个用户都有一个余额(例如 100 美元)。 如何将用户的余额存储在他们的用户名中,我需要使用实时数据库吗? 回答1 基本上,当新用户注册时,您将通过user.uid访问他的 UID,您可以使用该 UID 将信息存储在实时数据库中。 您可以创建这样的结构。 root: { users: { $uid: { // Store all your custom info here. balance: 100 } } } 对于每个用户,您都会将他们的信息写入"users/uid" 。 这应该使保存和获取信息变得相当简单。 要获得当前用户的余额,您所要做的就是观察"users/uid/balance" 。 创建用户。 firebase.auth().createUserWithEmailAndPassword(email, password) .then(function(user){ alert(user.uid) }).catch(function(error) { console.log(error.message) })

2022-05-16 08:30:04    分类:技术分享    javascript   firebase   firebase-realtime-database   firebase-authentication

laravel fcm push notification with brozot/Laravel-FCM not working on ios but working fine with android

问题 甚至 ios 也可以从 fcm 控制台获得通知。 控制器功能: public function push(Request $request) { $validator = Validator::make($request->all(), [ 'title' = > 'required', 'body' = > 'required', 'token' = > 'required', 'type' = > 'required', 'id' = > 'required', ]); if ($validator->fails()) { $this->throwValidationException( $request, $validator ); } $title = $request['title']; $body = $request['body']; $type = $request['type']; $id = $request['id']; $dataarray = array( "id" = >$id, "type" = >$type, 'title' = >$title, 'body' = >$body, 'image' = >'321451_v2.jpg', ); $token = $request['token']; return $push = Push

2022-05-16 03:32:53    分类:技术分享    ios   firebase   laravel-5.2   firebase-authentication   firebase-cloud-messaging

How to verify firebase ID token with PHP(JWT)?

问题 我有一个共享托管计划,其中只有 PHP(没有 Java,没有 node.js)。 我需要从我的 android 应用程序发送 firebase ID 令牌并通过 PHP-JWT 验证它。 我正在学习教程:验证 Firebase ID 令牌 它说: “如果您的后端使用的语言没有官方 Firebase Admin SDK,您仍然可以验证 ID 令牌。首先,为您的语言找到第三方 JWT 库。然后,验证标头、有效负载和签名ID 令牌。” 我找到了那个库:Firebase-PHP-JWT。 在 gitHub 示例中; 我无法理解 $关键部分: `$key = "example_key";` 和 $token 部分: `$token = array( "iss" => "http://example.org", "aud" => "http://example.com", "iat" => 1356999524, "nbf" => 1357000000 );` 我的问题: $key变量应该是什么? 为什么&token变量是一个数组? 将从移动应用程序发送的令牌是一个字符串。 如果有人可以发布一个使用 PHP-JWT 验证 Firebase ID 的完整示例,我将不胜感激。 编辑: 好吧,我明白了。 GitHub 示例展示了如何生成 JWT 代码(编码)以及如何对其进行解码。 在我的情况下

2022-05-16 02:18:16    分类:技术分享    php   android   firebase   firebase-authentication   jwt

Firebase facebook login photo url signature expired

问题 我在我的应用程序中使用 Firebase (angularfire) 和 Facebook 登录来验证我的用户。 但是今天我意识到个人资料图片 URL 已过期,但 Firebase SDK 没有刷新它。 有没有办法解决这个问题,或者我应该使用 Facebook API 请求图像? 回答1 使用 Firebase 中的 Facebook 照片的最佳方式是通过用户的 facebook ID: const fbUID = userData.providerData[0].uid const photoURL = 'https://graph.facebook.com/' + fbUID + '/picture?type=large' 这为您提供了一张不会过期的图片,并且它还始终与用户的 Facebook 个人资料图片保持同步。 更棒的是,它的质量比原版高得多,而且任何人都可以看到! 此外,不需要使用 Facebook API 来请求这个。 实际上,您可以使用任何 fbUID 将该 URL 粘贴到浏览器中,它将直接转到用户当前的个人资料图片。 回答2 我通过使用可以在以下位置找到的 photoURL 解决了这个问题: user.providerData[0].photoURL其中user是返回的用户数据 firebase.auth().onAuthStateChanged( user

2022-05-15 21:18:23    分类:技术分享    firebase   firebase-authentication   facebook-login

Firebase - How to detect/observe when Firebase user verified their email like onAuthStateChanged

问题 我知道要检查用户的电子邮件是否经过验证,我可以使用 firebase.auth().onAuthStateChanged((user) => { console.log(user["emailVerified"]); }) 但是我的问题是,每当用户在收件箱中验证他们的电子邮件地址时,我想观察/收听并重定向到另一个页面。 根据我的测试,onAuthStateChanged 在用户登录、更新个人资料和注销时触发,但在用户验证收件箱中的电子邮件地址时不会触发。 无论如何我可以检测到用户何时通过验证并自动重定向到另一个页面? 回答1 setInterval(function() { firebase.auth().currentUser.reload(); if (firebase.auth().currentUser.emailVerified) { console.log("Email Verified!"); this.navCtrl.setRoot(HomePage); } }, 1000); 回答2 回答3 this.authService.afAuth.onAuthStateChanged(function(user) { if(user){ if(user.emailVerified){ //Verified } } }

2022-05-15 20:17:19    分类:技术分享    angular   firebase   firebase-authentication