Yas*_*air 7 javascript firebase firebase-authentication firebase-admin
我在云函数上使用 firebase admin SDK 来创建用户
admin.auth().createUser({
email: someEmail,
password: somePassword,
})
Run Code Online (Sandbox Code Playgroud)
现在我希望用户使用登录signInWithEmailAndPassword('someEmail', 'somePassword')但我不能。我收到以下错误
{code: "auth/user-not-found", message: "There is no user record corresponding to this identifier. The user may have been deleted."}
Run Code Online (Sandbox Code Playgroud)
小智 8
似乎没有理由进行字符串化/解析。在我与一个不相关的拼写错误作斗争之后,这起作用了......
来自 REACT JS 按钮单击的函数调用
<Button onClick={() => {
var data = {
"email": "name@example.com",
"emailVerified": true,
"phoneNumber": "+15551212",
"password": "randomPW",
"displayName": "User Name",
"disabled": false,
"sponsor": "Extra Payload #1 (optional)",
"study": "Extra Payload #2 (optional)"
};
var createUser = firebase.functions().httpsCallable('createUser');
createUser( data ).then(function (result) {
// Read result of the Cloud Function.
console.log(result.data)
});
}}>Create User</Button>
Run Code Online (Sandbox Code Playgroud)
在 /functions 子目录中的 index.js 中:
const functions = require("firebase-functions");
const admin = require('firebase-admin');
admin.initializeApp();
// CREATE NEW USER IN FIREBASE BY FUNCTION
exports.createUser = functions.https.onCall(async (data, context) => {
try {
const user = await admin.auth().createUser({
email: data.email,
emailVerified: true,
password: data.password,
displayName: data.displayName,
disabled: false,
});
return {
response: user
};
} catch (error) {
throw new functions.https.HttpsError('failed to create a user');
}
});
Run Code Online (Sandbox Code Playgroud)
小智 -1
以防万一其他人遇到这个问题,我可以在这个的帮助下修复它。
这是onCreate云函数内部的一个工作示例:
exports.newProjectLead = functions.firestore
.document('newProjectForms/{docId}')
.onCreate(async (snapshot) => {
const docId = snapshot.id
// this is what fixed it the issue
// stringify the data
const data = JSON.stringify(snapshot.data())
// then parse it back to JSON
const obj = JSON.parse(data)
console.log(obj)
const email = obj.contactEmail
console.log(email)
const password = 'ChangeMe123'
const response = await admin.auth().createUser({
email,
password
})
data
const uid = response.uid
const dbRef = admin.firestore().collection(`clients`)
await dbRef.doc(docId).set({
id: docId,
...data,
uid
}, {
merge: true
})
console.log('New Client Created')
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8661 次 |
| 最近记录: |