0

我正在尝试使用 MST 操作在 firebase 中创建新用户。

我的代码看起来像这样:

.actions((self => ({
    createUserWithEmailPassword:
        flow(function*(password: string) {
            console.log('creating user');
            yield firebase.auth().setPersistence(firebase.auth.Auth.Persistence.LOCAL);
            console.log('set Persistence');
            const user = yield firebase.auth().createUserWithEmailAndPassword(self.email, password);
            console.log('CREATED USER', user);
            self.uid = user.uid;
        })
}));

它确实创建了一个用户,但它不会提前createUserWithEmailAndPassword调用。(即它永远不会控制台“创建用户”)

我在用户上也有 onPatch 控制台,但它也不会显示用户更新。

我厌倦了安慰虚假的 api 调用

let res = yield fetch("https://randomapi.com/api/6de6abfedb24f889e0b5f675edc50deb?fmt=raw&sole")

这完美地工作。

看起来有什么问题,createUserWithEmailAndPassword但我无法弄清楚。

4

1 回答 1

1

你的代码应该可以工作,但你也可以试试这个

createUserWithEmailPassword(password: string) {   
  flow(function*() {
            console.log('creating user');
            yield firebase.auth().setPersistence(firebase.auth.Auth.Persistence.LOCAL);
            console.log('set Persistence');
            const user = yield firebase.auth().createUserWithEmailAndPassword(self.email, password);
            console.log('CREATED USER', user);
            self.uid = user.uid;
        })() // <--- check this
}

Flow 将返回一个您需要调用的函数

或者像这样

createUserWithEmailPassword(password: string) {
        const run = flow(function*() {
            console.log('creating user');
            yield firebase.auth().setPersistence(firebase.auth.Auth.Persistence.LOCAL);
            console.log('set Persistence');
            const user = yield firebase.auth().createUserWithEmailAndPassword(self.email, password);
            console.log('CREATED USER', user);
            self.uid = user.uid;
        })

        run()
}
于 2019-09-11T10:17:53.207 回答