作为问题,在 firebase 中使用 google 登录需要设置 google-service 但如果您使用 create-react-native-app 创建新的 react-native 项目,则将没有“android”或“ios”文件夹(接受使用“eject ") 那么,有人对我有什么建议吗?但是我也不知道如何在我的项目中设置 google-service(即使我“弹出”项目)。
问问题
9517 次
2 回答
20
@brentvatne 的回答有点过时了。这是我在 Expo v27 上的工作方式
重要一点:您可以使用这些说明获取您的客户 ID 。
只需从 google 页面上的项目下拉列表中选择您的 firebase 应用程序。
const _loginWithGoogle = async function() {
try {
const result = await Expo.Google.logInAsync({
androidClientId:"YOUR_ANDROID_CLIENT_ID",
iosClientId:"YOUR_iOS_CLIENT_ID",
scopes: ["profile", "email"]
});
if (result.type === "success") {
const { idToken, accessToken } = result;
const credential = firebase.auth.GoogleAuthProvider.credential(idToken, accessToken);
firebase
.auth()
.signInAndRetrieveDataWithCredential(credential)
.then(res => {
// user res, create your user, do whatever you want
})
.catch(error => {
console.log("firebase cred err:", error);
});
} else {
return { cancelled: true };
}
} catch (err) {
console.log("err:", err);
}
};
于 2018-05-17T19:20:27.520 回答
4
无需对 android 或 ios 文件夹进行任何更改即可支持 Google 在使用 Expo 构建的应用上使用 firebase 登录。
- 按照Expo 文档中配置 Google 身份验证的指南进行操作
- 使用 Expo 的Using Firebase guide中描述的方法,其中描述了如何使用 Facebook 进行身份验证,并在需要时更换 Google。
于 2017-06-18T18:43:20.983 回答