UnlearnableWord icon indicating copy to clipboard operation
UnlearnableWord copied to clipboard

微信登陆时报错,提示Database error!

Open pioneer-summit opened this issue 2 years ago • 30 comments

微信登陆时报错,提示Database error!

image image

而我的云开发环境里面是有这个数据库的

pioneer-summit avatar Aug 29 '22 02:08 pioneer-summit

你好,你可以试一下在对应的云函数(userRouter)里加一些console.log代码,部署后再云开发界面的 云函数-日志 里面看对应的打印结果

Mint-green avatar Aug 29 '22 15:08 Mint-green

这个问题是因为新建的数据库里没有用户记录,而用微信登陆的时候需要去访问数据库来获得当前最大的id,所以才出错

pioneer-summit avatar Aug 31 '22 10:08 pioneer-summit

另外一个BUG,就是已经学完的单词不计数,一直是0/20,这个我还没解决,大大能够给出更改后的项目吗?

pioneer-summit avatar Aug 31 '22 10:08 pioneer-summit

这个问题是因为新建的数据库里没有用户记录,而用微信登陆的时候需要去访问数据库来获得当前最大的id,所以才出错

噢,这个场景当初没发现,感谢提醒!

Mint-green avatar Aug 31 '22 12:08 Mint-green

另外一个BUG,就是已经学完的单词不计数,一直是0/20,这个我还没解决,大大能够给出更改后的项目吗?

github的代码应该是最新的啦,数量这个应该是没问题的,可能是你过单词的数量不够多(?)单词学习页单词下面的三个点就是重复次数,默认三次,三个都填充上色才表示单词完成学习,你可以到设置页里面把单词重复次数降低或者调整成简单的题型来加快这个进程

Mint-green avatar Aug 31 '22 12:08 Mint-green

这个问题是因为新建的数据库里没有用户记录,而用微信登陆的时候需要去访问数据库来获得当前最大的id,所以才出错

噢,这个场景当初没发现,感谢提醒!

请问您解决了吗,能说下解决办法吗

happyfox-dot avatar Oct 01 '22 15:10 happyfox-dot

这个问题是因为新建的数据库里没有用户记录,而用微信登陆的时候需要去访问数据库来获得当前最大的id,所以才出错

噢,这个场景当初没发现,感谢提醒!

请问您解决了吗,能说下解决办法吗

这个解决了,是在源码里改的,你找一下他那个逻辑中有一个,如果是新用户的话,他还是会去寻找数据库中存在的这个用户ID最大的那个,你把他改了就行了,明天我去找一下源码发出来

pioneer-summit avatar Oct 01 '22 15:10 pioneer-summit

这个问题是因为新建的数据库里没有用户记录,而用微信登陆的时候需要去访问数据库来获得当前最大的id,所以才出错

噢,这个场景当初没发现,感谢提醒!

请问您解决了吗,能说下解决办法吗

这个解决了,是在源码里改的,你找一下他那个逻辑中有一个,如果是新用户的话,他还是会去寻找数据库中存在的这个用户ID最大的那个,你把他改了就行了,明天我去找一下源码发出来

好的,十分感谢您 👍

happyfox-dot avatar Oct 01 '22 15:10 happyfox-dot

我这边争取这两天改一版,就是登录那个云函数里面userrouter的register和wxlogin都有可能出问题,初始逻辑是先获取数据库中最大id,+1后赋给新账号的,一开始可能手动加的记录所以一直没考虑到这种情况,后来也忘记做兜底处理了不好意思~

Mint-green avatar Oct 02 '22 02:10 Mint-green

image./cloudfunctions/userRouter/index.js的第74行这里的逻辑有些问题,如果数据库中没有用户信息的话,这个当前的最大值是无法获取到的。 image 第193行也是相同的问题

pioneer-summit avatar Oct 02 '22 02:10 pioneer-summit

十分感谢!

happyfox-dot avatar Oct 02 '22 03:10 happyfox-dot

image./cloudfunctions/userRouter/index.js的第74行这里的逻辑有些问题,如果数据库中没有用户信息的话,这个当前的最大值是无法获取到的。 image 第193行也是相同的问题

十分感谢

happyfox-dot avatar Oct 02 '22 03:10 happyfox-dot

image./cloudfunctions/userRouter/index.js的第74行这里的逻辑有些问题,如果数据库中没有用户信息的话,这个当前的最大值是无法获取到的。 image 第193行也是相同的问题

十分感谢

您好,我在数据库为空的时候,直接使用命令 userinfo.user_id = 111 修改了这两个地方 同样出现了问题 image 这个为什么呢?

happyfox-dot avatar Oct 02 '22 05:10 happyfox-dot

问题在 res1.data[0].user_id + 1 这个计算上,如果你没有删除的话,手动赋值 userinfo.user_id = 111 也会有误

Mint-green avatar Oct 02 '22 05:10 Mint-green

问题在 res1.data[0].user_id + 1 这个计算上,如果你没有删除的话,手动赋值 userinfo.user_id = 111 也会有误

这一行被我注释掉了,只保留了上面赋值操作,还是出现了数据库返回数据是空的问题 😢

happyfox-dot avatar Oct 02 '22 05:10 happyfox-dot

问题在 res1.data[0].user_id + 1 这个计算上,如果你没有删除的话,手动赋值 userinfo.user_id = 111 也会有误

这一行被我注释掉了,只保留了上面赋值操作,还是出现了数据库返回数据是空的问题 😢 这个表达式在上一行的 console.log 里面也有

Mint-green avatar Oct 02 '22 06:10 Mint-green

谢谢这个问题终于解决了,报错是因为let res2 = await learnerDB.orderBy('user_id', 'desc').limit(1).get() 造成的,注释掉,手动的创建的时候使用 userinfo_user.id = 111.就行了。成功注册了第一条之后就可以正常使用了

happyfox-dot avatar Oct 02 '22 06:10 happyfox-dot

这个问题我这边解决的了,已经更新代码啦~

Mint-green avatar Oct 02 '22 08:10 Mint-green

这个问题我这边解决的了,已经更新代码啦~

作者您好,我现在用的最新版的,点击微信登录还是会出现楼主一样的“Database error”。数据库已经上传了,并且router中的index.js中的小程序云环境 id全部改为自己的了。macos13.2.1

axh2018 avatar Feb 24 '23 11:02 axh2018

作者您好,我现在用的最新版的,点击微信登录还是会出现楼主一样的“Database error”。数据库已经上传了,并且router中的index.js中的小程序云环境 id全部改为自己的了。macos13.2.1

我这边没问题也,你app.js那里有没有也设置env image

Mint-green avatar Feb 25 '23 08:02 Mint-green

作者您好,我现在用的最新版的,点击微信登录还是会出现楼主一样的“Database error”。数据库已经上传了,并且router中的index.js中的小程序云环境 id全部改为自己的了。macos13.2.1

我这边没问题也,你app.js那里有没有也设置env image

我设置了呀,我envList.js也设置了。不知道是哪里的问题。

axh2018 avatar Feb 26 '23 10:02 axh2018

那其他模块有问题嘛,看下可不可以注册个普通账号测试其他功能? 我暂时也不太懂你这个是啥情况,你可以可以去云函数的高级日志那里打开一下日志功能(要付费),然后在普通日志那里看一下对应的请求有打印了啥日志(就云函数里console.log打印的东西,微信云开发也自定义了一套日志对象,你也可以用他的那个),我应该有打印部分东西出来,还可以去云函数里面在中间步骤处理结束时加一些console.log,看看程序是哪个地方中断了 如果就是数据库查询语句中断的话,可以把查询的指令复制到数据库集合列表下方的高级指令那里(新建一个),把对应的变量改成写死的,看看能不能正常进行数据库查询/增改等操作

Mint-green avatar Feb 26 '23 11:02 Mint-green

登录也是database error,注册提示 VM834 WAService.js:2 TypeError: Cannot read property 'isFind' of undefined at _callee$ (login.js:64) at L (regenerator.js:1) at Generator._invoke (regenerator.js:1) at Generator.t. [as next] (regenerator.js:1) at asyncGeneratorStep (asyncToGenerator.js:1) at c (asyncToGenerator.js:1)(env: macOS,mp,1.06.2209190; lib: 2.20.1)

云开发后台的云函数和数据库我看都有请求了,还是没排查出是什么问题,是不是要重新创建一个小程序,现在这个是我很久之前注册的小程序。

axh2018 avatar Feb 27 '23 09:02 axh2018

如果你说的新建小程序指的是appid的话,应该是不用的,我这个打开后 1.换上你的appid 2.创建好基本的数据库(集合)以及上传基础数据 3.app.js 和云函数的 clould.init 都写清楚云环境env id/env 4.上传云函数并部署 应该就是ok的了,看你这个说云函数有请求记录,应该是没配置错误

Mint-green avatar Feb 27 '23 09:02 Mint-green

你试试看把数据库查询语句执行下吧,联系的话可以发个邮件给我邮箱先[email protected] image

Mint-green avatar Feb 27 '23 09:02 Mint-green

查询没问题,我数据库里learner是空的 图片

axh2018 avatar Feb 27 '23 09:02 axh2018

emmm,你联系我吧,就找上面那个邮箱

Mint-green avatar Feb 27 '23 09:02 Mint-green

谢谢呀,我已经跑起来了,也不知道哪里的问题。我重新搭建了一遍,然后云函数重新上传了,看到有个评论说云函数的上传顺序,也不确定是不是这个原因。谢谢大佬~

emmm,你联系我吧,就找上面那个邮箱

axh2018 avatar Feb 27 '23 11:02 axh2018

好滴,云函数上传顺序应该是没关系的,其实这个database error是我定义的通用错误返回,但没做具体处理,代码里还是按照正确返回的情况处理的,所以经常出现这种 undefined 的情况 还有的话,那些库要加一下索引,一般的就是 word_id, user_id 这种,特别的 word_in_book 需要同时设置 word_id 和 wd_bk_id (词id和词书id才能定义一个词与词书的关系),同理 learningRecord 是 word_id 和 user_id,增加索引的话可以加快一些查询速度,避免有些lookup查询时超时报错

Mint-green avatar Feb 27 '23 12:02 Mint-green

好滴,云函数上传顺序应该是没关系的,其实这个database error是我定义的通用错误返回,但没做具体处理,代码里还是按照正确返回的情况处理的,所以经常出现这种 undefined 的情况 还有的话,那些库要加一下索引,一般的就是 word_id, user_id 这种,特别的 word_in_book 需要同时设置 word_id 和 wd_bk_id (词id和词书id才能定义一个词与词书的关系),同理 learningRecord 是 word_id 和 user_id,增加索引的话可以加快一些查询速度,避免有些lookup查询时超时报错

感谢~ 膜拜大佬

axh2018 avatar Feb 27 '23 12:02 axh2018