我创建了一个使用 React + Firebase + Lambda 函数的项目。
我在前端有 Firebase 代码,我需要一些后端来处理一些事件。(阻止用户修改 Firebase 中的数据,但允许应用程序更新这些数据)
当我使用 Netlify 部署我的应用程序时,我可以使用 netlify-lambda 访问 Amazon Lambda 函数。(https://www.netlify.com/docs/functions/)
通常一切正常(mailchimp API、snipcart API 等......)
但我无法让 Firebase 工作。
我创建了一个具有读写权限的服务帐户。
这里是我的 lambda 函数的代码:(只是一个尝试查看数据库用户部分的测试。)
import firebaseAdmin from 'firebase-admin'
const serviceAccount = require('../utils/FirebaseServiceAccountKey.json')
export function handler (event, context, callback) {
firebaseAdmin.initializeApp({
credential: firebaseAdmin.credential.cert(serviceAccount),
databaseURL: 'https://sample-3615.firebaseio.com'
})
const db = firebaseAdmin.database()
const ref = db.ref('/users')
let users = {}
ref.once('value', function (snapshot) {
console.log(snapshot.val())
users = snapshot.val()
})
callback(null, {
statusCode: 200,
body: JSON.stringify({ users })
})
}
它返回我:TypeError: rtdb.initStandalone is not a function
。
我也有很多这样的警告:Module not found: Error: Can not resolve 'memcpy'
对于其他包也是如此。
我对组件中函数的调用:
handleClick = (e) => {
e.preventDefault()
this.setState({loading: true})
fetch('/.netlify/functions/score')
.then(res => res.json())
.then(json => console.log(json.users))
.then(() => this.setState({loading: false}))
}
我不确定问题出在哪里。网络包?