提交 a6b12228 编写于 作者: 雪洛's avatar 雪洛

docs: uniCloud database、uni-id

上级 81007d00
......@@ -1611,7 +1611,8 @@ db.runTransaction(callback: function, times: number)
**注意事项**
开发者提供的事务执行函数正常返回时,uniCloud 会自动提交(`commit`)事务,请勿在事务执行函数内调用 `transaction.commit` 方法,该方法仅在通过 `db.startTransaction` 进行事务操作时使用
- 开发者提供的事务执行函数正常返回时,uniCloud 会自动提交(`commit`)事务,请勿在事务执行函数内调用 `transaction.commit` 方法,该方法仅在通过 `db.startTransaction` 进行事务操作时使用
- 请注意transaction.doc().get()返回的data不是数组形式
**示例代码**
......@@ -1622,11 +1623,10 @@ const db = uniCloud.database()
const dbCmd = db.command
exports.main = async (event) => {
try {
const result = await db.runTransaction(async transaction => {
const aaaRes = await transaction.collection('account').doc('aaa').get()
const bbbRes = await transaction.collection('account').doc('bbb').get()
if (aaaRes.data && bbbRes.data) {
const result = await db.runTransaction(async transaction => {
const aaaRes = await transaction.collection('account').doc('aaa').get()
const bbbRes = await transaction.collection('account').doc('bbb').get()
if(aaaRes.data && bbbRes.data) {
try {
const updateAAARes = await transaction.collection('account').doc('aaa').update({
amount: dbCmd.inc(-10)
......@@ -1635,20 +1635,20 @@ exports.main = async (event) => {
const updateBBBRes = await transaction.collection('account').doc('bbb').update({
amount: dbCmd.inc(10)
})
console.log(`transaction succeeded`)
const aaaEndRes = await transaction.collection('account').doc('aaa').get()
if (aaaEndRes.data.amount < 0) { // 请注意transaction.doc().get()返回的data不是数组形式
transaction.rollback(-100)
}
// 会作为 runTransaction resolve 的结果返回
return {
aaaAccount: aaaRes.data.amount - 10,
aaaAccount: aaaEndRes.data.amount,
}
} catch(e) {
// 会作为 runTransaction reject 的结果出去
await transaction.rollback(-100)
}
} else {
// 会作为 runTransaction reject 的结果出去
await transaction.rollback(-100)
}
} else {
await transaction.rollback(-100)
}
})
......@@ -1689,6 +1689,10 @@ db.startTransaction()
- 对于修改和删除仅支持使用doc方法,不支持使用where方法。
- 新增时使用add方法一次只可以新增单条,不可新增多条,即不支持在add方法内传入数组
- 腾讯云没有限制where的使用,但是使用where修改或删除多条会导致无法回滚
**注意**
- 请注意transaction.doc().get()返回的data不是数组形式
**示例代码**
......@@ -1712,16 +1716,26 @@ exports.main = async (event) => {
const updateBBBRes = await transaction.collection('account').doc('bbb').update({
amount: dbCmd.inc(10)
})
await transaction.commit()
console.log(`transaction succeeded`)
})
const aaaEndRes = await transaction.collection('account').doc('aaa').get()
if (aaaEndRes.data.amount < 0) { // 请注意transaction.doc().get()返回的data不是数组形式
transaction.rollback(-100)
return {
success: false,
error: `rollback`,
rollbackCode: -100,
}
} else {
await transaction.commit()
console.log(`transaction succeeded`)
return {
success: true,
aaaAccount: aaaRes.data.amount - 10,
return {
success: true,
aaaAccount: aaaRes.data.amount - 10,
}
}
} else {
return {
......
......@@ -191,7 +191,6 @@ exports.main = async function(event){
message: '下单失败'
}
}
// 其他业务逻辑...
}
```
......@@ -200,6 +199,7 @@ exports.main = async function(event){
关于云存储:这里的读写次数,并不一定是针对文件的:包括:上传文件、修改Policy、修改ACL、修改CORS 等操作,都会被认为是COS写。环境初始化时也会执行很多次初始化操作,写入 policy/acl/cors 等配置信息。用户每次操作 修改安全域名、修改静态域名等,也会触发 CORS 的写入。
关于数据库:开发者通过uniCloud web控制台访问数据库也会增加少量读写次数
### 部署网站到前端网页托管报“The requested file was not found on this server.”
- 部署history模式的uni-app项目时,如果未修改前端网页托管的配置,直接访问子页面时就会遇到上面的错误。如何配置请参考[部署uni-app项目](uniCloud/hosting.md?id=host-uni-app)
......@@ -1306,7 +1306,7 @@ exports.main = async function(event,context) {
| openid | String | 是 |用户openid |
| unionid | String | 否 |用户unionid,能取到此参数时会返回 |
| token | String | 是 |登录成功之后返回的token信息 |
| userInfo | Object| 是 |用户全部信息 |
| userInfo | Object | 否 |用户全部信息,`type``login`时返回 |
| tokenExpired | String | 是 |token过期时间 |
| mobileConfirmed | Boolean | 是 |是否已验证手机号 |
| emailConfirmed | Boolean | 是 |是否已验证邮箱 |
......@@ -1530,7 +1530,7 @@ exports.main = async function(event,context) {
| type | String | 是 |操作类型,`login`为登录、`register`为注册|
| openid | String | 是 |用户openid |
| token | String | 是 |登录成功之后返回的token信息 |
| userInfo | Object| 是 |用户全部信息 |
| userInfo | Object| 是 |用户全部信息`type``login`时返回 |
| tokenExpired | String | 是 |token过期时间 |
| mobileConfirmed | Boolean | 是 |是否已验证手机号 |
| emailConfirmed | Boolean | 是 |是否已验证邮箱 |
......
......@@ -53,7 +53,7 @@ const unipay = require('@dcloudio/unipay')
| :--------: | :-----: | :----: | :--------------------------------------------------: | :------------------------------------: |
| appId | String | 是 | - | 当前应用在对应支付平台的 appId |
| mchId | String | 是 | - | 商户号 |
| key | String | 是 | - | 支付商户 md5 key |
| key | String | 是 | - | 支付商户 key (API密钥) |
| pfx | String | Buffer | 使用退款功能必填 | 微信支付商户 API 证书,主要用于退款 |
| timeout | Number | 否 | 5000 | 请求超时时间,单位:毫秒 |
| signType | String | 否 | MD5 | 签名类型 |
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册