Firebase 从下一个js浏览器代码中删除google gax
我在服务器端使用了一个带有firebase admin的next.js设置。但由于以下错误,我无法在safari上运行该页面。(铬没有问题) SyntaxError:无效的正则表达式:无效的组说明符名称 在正则表达式上Firebase 从下一个js浏览器代码中删除google gax,firebase,webpack,safari,next.js,Firebase,Webpack,Safari,Next.js,我在服务器端使用了一个带有firebase admin的next.js设置。但由于以下错误,我无法在safari上运行该页面。(铬没有问题) SyntaxError:无效的正则表达式:无效的组说明符名称 在正则表达式上 /(?我找到了问题所在。一些路径调用firebaseAdmin调用进行服务器端呈现,以忽略fetch()调用。现在它可以工作了 if (typeof window !== "undefined") { let ref = firebaseCli
/(?我找到了问题所在。一些路径调用firebaseAdmin调用进行服务器端呈现,以忽略fetch()调用。现在它可以工作了
if (typeof window !== "undefined") {
let ref = firebaseClient.storage().ref(path);
return await ref.getDownloadURL() as string;
} else {
// before change
const admin = require('firebase-admin');
let bucket = admin.storage().bucket(process.env.NEXT_FIREBASE_STORAGE_BUCKET);
// after change
let bucket = firebaseAdmin.storage().bucket(process.env.NEXT_FIREBASE_STORAGE_BUCKET);
let file = bucket.file(path);
return file.getSignedUrl({
action: 'read',
expires: '03-17-2025'
})
.then((data: GetSignedUrlResponse) => {
return data[0];
});
}
这里回答了这个问题。
let admin = null;
if (typeof window === "undefined") {
admin = require('firebase-admin');
if (!admin.apps.length) {
console.log("initializing firebase...");
let serviceAccount = {};
serviceAccount = require('../../keys/firebase-key.json');
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
storageBucket: process.env.NEXT_FIREBASE_STORAGE_BUCKET,
databaseURL: process.env.NEXT_PUBLIC_FIREBASE_DATABASE_URL,
});
}
}
export {admin as firebaseAdmin};
if (typeof window !== "undefined") {
let ref = firebaseClient.storage().ref(path);
return await ref.getDownloadURL() as string;
} else {
// before change
const admin = require('firebase-admin');
let bucket = admin.storage().bucket(process.env.NEXT_FIREBASE_STORAGE_BUCKET);
// after change
let bucket = firebaseAdmin.storage().bucket(process.env.NEXT_FIREBASE_STORAGE_BUCKET);
let file = bucket.file(path);
return file.getSignedUrl({
action: 'read',
expires: '03-17-2025'
})
.then((data: GetSignedUrlResponse) => {
return data[0];
});
}