在应用程序中,我希望有非常特殊网址的短链接。
当存储第一个对象时,我希望它的键为“a”,然后跟“b”一样,最多可能是...... abc..n
,而不是那些有点丑陋的火力键网址。
另外,我不能使用谷歌网址缩短器,这应该是应用程序自己的域名,以满足客户的要求。
这一切都在Firebase功能后端完成,请尽可能显示代码示例。
仍然在普通数据库上,还没有Firestore。
修改
好的,我想我可以使用横切增加一些数字,成功后,将数字作为新的唯一键并写入另一个位置。
但我似乎无法用Javascript找出完成部分,但对于Java,这很清楚。如何使用Javascript获取以下版本。
来自 :: https://firebase.google.com/docs/database/admin/save-data#section-transactions
DatabaseReference upvotesRef = ref.child("links/autoincIndex");
upvotesRef.runTransaction(new Transaction.Handler() {
@Override
public Transaction.Result doTransaction(MutableData mutableData) {
Integer currentValue = mutableData.getValue(Integer.class);
if (currentValue == null) {
mutableData.setValue(1);
} else {
mutableData.setValue(currentValue + 1);
}
return Transaction.success(mutableData);
}
@Override
public void onComplete(DatabaseError e, boolean b, DataSnapshot s) {
//I could ...
if(e == null && b){
String newAutoKey = s.val();
db.child("links").child(newAutoKey).set(supposedPayload);
}
}
});
编辑:: 好的,我最终得到了这个,虽然不是基于字母的,但它至少到了那里。
return src.child('autoId').transaction(function (d) {
return (d || 0) + 1;
}, function (e, committed, snapshot) {
if (e) {
console.log('Failed abnormally!', e);
return;
}
return objRef.child(snapshot.val()).set(payload);
});