Firebase和Cordova-使用Facebook';s用于登录的应用程序凭据
我希望能够使用Facebook登录将我的用户登录到Firebase,但如果他们安装了Facebook应用程序,无需再次填写他们的信息,只需请求正确的权限,就像许多本机应用程序一样。可能吗 [编辑] 通过使用官方的Facebook插件和NGCordova实现()我可以使用手机上已有的凭据让用户登录——我猜是Facebook的应用程序。当然,它没有使用Firebase将用户登录到我的应用程序。我不知道我是否走对了路。。。如果我是,我就不知道怎么造桥 [编辑2]Firebase和Cordova-使用Facebook';s用于登录的应用程序凭据,cordova,firebase,facebook-login,Cordova,Firebase,Facebook Login,我希望能够使用Facebook登录将我的用户登录到Firebase,但如果他们安装了Facebook应用程序,无需再次填写他们的信息,只需请求正确的权限,就像许多本机应用程序一样。可能吗 [编辑] 通过使用官方的Facebook插件和NGCordova实现()我可以使用手机上已有的凭据让用户登录——我猜是Facebook的应用程序。当然,它没有使用Firebase将用户登录到我的应用程序。我不知道我是否走对了路。。。如果我是,我就不知道怎么造桥 [编辑2] 显然Firebase提供了一个函数来实
显然Firebase提供了一个函数来实现这一点:但目前我无法让它工作。如果我最终找到解决方案,我会回来与大家分享。好的,我终于让它工作了!如果将来有人需要此功能,以下是您的操作方法:
- 创建科尔多瓦(或爱奥尼亚)常规项目
- 创建一个Facebook应用程序。你可以在那之后创建一个测试应用程序,以便于测试
- 为Facebook添加插件:并使用想要的安装(在我的例子中,android有点复杂,请注意密钥散列步骤)。如果您确实使用Ionic或其他基于角度的框架,则可能需要使用NGCordova:
- 如果你使用Facebook测试应用程序,如果你在Android上工作,请确保用Android密钥哈希填充其字段,并确保使用其应用程序ID,而不是产品ID
- 在Firebase上,别忘了填写Facebook应用程序的ID和密码
- 有角火:
app.factory("firebaseRoot", [ function() { return "https://<YOUR FIREBASE>.firebaseio.com/"; }]) app.factory("Auth", ["$firebaseAuth", "firebaseRoot", function($firebaseAuth, firebaseRoot) { var ref = new Firebase(firebaseRoot); return $firebaseAuth(ref); }])
- 或纯JS:
function fblogin() { var fbLoginSuccess = function (userData) { console.log(userData.authResponse.accessToken); var ref = new Firebase("https://<YOUR FIREBASE>.firebaseio.com"); ref.authWithOAuthToken("facebook", userData.authResponse.accessToken, function(error, authData) { if (error) { console.log("Login Failed!", error); } else { console.log("Authenticated successfully with payload:", authData); } }); } facebookConnectPlugin.login(["public_profile"], fbLoginSuccess, function (error) { console.log("" + error) } ); }
函数fblogin(){ var FBLoginSAccess=函数(用户数据){ log(userData.authResponse.accessToken); var ref=新的火基(“https://.firebaseio.com"); ref.authWithOAuthToken(“facebook”,userData.authResponse.accessToken,函数(错误,authData){ 如果(错误){ log(“登录失败!”,错误); }否则{ log(“使用有效负载成功进行身份验证:”,authData); } }); } facebookConnectPlugin.login([“public_profile”], fbLoginSuccess, 函数(错误){console.log(“+错误)} ); }
function fblogin() { var fbLoginSuccess = function (userData) { console.log(userData.authResponse.accessToken); var ref = new Firebase("https://<YOUR FIREBASE>.firebaseio.com"); ref.authWithOAuthToken("facebook", userData.authResponse.accessToken, function(error, authData) { if (error) { console.log("Login Failed!", error); } else { console.log("Authenticated successfully with payload:", authData); } }); } facebookConnectPlugin.login(["public_profile"], fbLoginSuccess, function (error) { console.log("" + error) } ); }
- 或纯JS: